int32_t CBC_OnedEAN8Reader::DecodeMiddle(CBC_CommonBitArray* row, CFX_Int32Array* startRange, CFX_ByteString& resultResult, int32_t& e) { CFX_Int32Array counters; counters.Add(0); counters.Add(0); counters.Add(0); counters.Add(0); int32_t end = row->GetSize(); int32_t rowOffset = (*startRange)[1]; int32_t rowOffsetLeft = rowOffset; for (int32_t x = 0; x < 4 && rowOffset < end; x++) { int32_t bestMatch = DecodeDigit(row, &counters, rowOffset, &(CBC_OneDimReader::L_PATTERNS[0][0]), 10, e); BC_EXCEPTION_CHECK_ReturnValue(e, 0); resultResult += (FX_CHAR)('0' + bestMatch); for (int32_t i = 0; i < counters.GetSize(); i++) { rowOffset += counters[i]; } } int32_t RowOffsetLen = (rowOffset - rowOffsetLeft) / 4; CFX_Int32Array result; result.Add(CBC_OneDimReader::MIDDLE_PATTERN[0]); result.Add(CBC_OneDimReader::MIDDLE_PATTERN[1]); result.Add(CBC_OneDimReader::MIDDLE_PATTERN[2]); result.Add(CBC_OneDimReader::MIDDLE_PATTERN[3]); result.Add(CBC_OneDimReader::MIDDLE_PATTERN[4]); CFX_Int32Array* middleRange = FindGuardPattern(row, rowOffset, TRUE, &result, e); BC_EXCEPTION_CHECK_ReturnValue(e, 0); int32_t rowOffsetMid = rowOffset; rowOffset = (*middleRange)[1]; if ((rowOffset - rowOffsetMid) > RowOffsetLen) { e = BCExceptionNotFound; BC_EXCEPTION_CHECK_ReturnValue(e, 0); } if (middleRange != NULL) { delete middleRange; middleRange = NULL; } for (int32_t y = 0; y < 4 && rowOffset < end; y++) { int32_t bestMatch = DecodeDigit(row, &counters, rowOffset, &(CBC_OneDimReader::L_PATTERNS[0][0]), 10, e); BC_EXCEPTION_CHECK_ReturnValue(e, 0); resultResult += (FX_CHAR)('0' + bestMatch); for (int32_t i = 0; i < counters.GetSize(); i++) { rowOffset += counters[i]; } } return rowOffset; }
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(); }
int32_t CBC_Detector::patternMatchVariance(CFX_Int32Array& counters, int32_t* pattern, int32_t maxIndividualVariance) { int32_t numCounters = counters.GetSize(); int32_t total = 0; int32_t patternLength = 0; for (int32_t i = 0; i < numCounters; i++) { total += counters[i]; patternLength += pattern[i]; } if (total < patternLength) { return INTERGER_MAX; } int32_t unitBarWidth = (total << INTEGER_MATH_SHIFT) / patternLength; maxIndividualVariance = (maxIndividualVariance * unitBarWidth) >> INTEGER_MATH_SHIFT; int32_t totalVariance = 0; for (int32_t x = 0; x < numCounters; x++) { int32_t counter = counters[x] << INTEGER_MATH_SHIFT; int32_t scaledPattern = pattern[x] * unitBarWidth; int32_t variance = counter > scaledPattern ? counter - scaledPattern : scaledPattern - counter; if (variance > maxIndividualVariance) { return INTERGER_MAX; } totalVariance += variance; } return totalVariance / total; }
FX_BOOL CXFA_FFListBox::LoadWidget() { CFWL_ListBox* pListBox = CFWL_ListBox::Create(); pListBox->Initialize(); pListBox->ModifyStyles(FWL_WGTSTYLE_VScroll | FWL_WGTSTYLE_NoBackground, 0xFFFFFFFF); m_pNormalWidget = (CFWL_Widget*)pListBox; IFWL_Widget* pWidget = m_pNormalWidget->GetWidget(); m_pNormalWidget->SetPrivateData(pWidget, this, NULL); IFWL_NoteDriver* pNoteDriver = FWL_GetApp()->GetNoteDriver(); pNoteDriver->RegisterEventTarget(pWidget, pWidget); m_pOldDelegate = 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]); } FX_DWORD 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++) { FWL_HLISTITEM item = pListBox->GetItem(iSelArray[j]); pListBox->SetSelItem(item, TRUE); } m_pNormalWidget->UnlockUpdate(); return CXFA_FFField::LoadWidget(); }
int32_t CBC_PDF417Common::getBitCountSum(CFX_Int32Array& moduleBitCount) { int32_t bitCountSum = 0; for (int32_t i = 0; i < moduleBitCount.GetSize(); i++) { int32_t count = moduleBitCount.GetAt(i); bitCountSum += count; } return bitCountSum; }
int32_t CBC_PDF417CodewordDecoder::getBitValue(CFX_Int32Array& moduleBitCount) { int64_t result = 0; for (int32_t i = 0; i < moduleBitCount.GetSize(); i++) { for (int32_t bit = 0; bit < moduleBitCount.GetAt(i); bit++) { result = (result << 1) | (i % 2 == 0 ? 1 : 0); } } return (int32_t)result; }
int32_t CXFA_ResolveProcessor::XFA_ResolveNodes_PopStack( CFX_Int32Array& stack) { int32_t nType = -1; int32_t iSize = stack.GetSize() - 1; if (iSize > -1) { nType = stack[iSize]; stack.RemoveAt(iSize, 1); } return nType; }
CBC_ReedSolomonGF256Poly* CBC_ReedSolomonGF256Poly::AddOrSubtract( CBC_ReedSolomonGF256Poly* other, int32_t& e) { if (IsZero()) return other->Clone(e); if (other->IsZero()) return Clone(e); CFX_Int32Array smallerCoefficients; smallerCoefficients.Copy(m_coefficients); CFX_Int32Array largerCoefficients; largerCoefficients.Copy(*(other->GetCoefficients())); if (smallerCoefficients.GetSize() > largerCoefficients.GetSize()) { CFX_Int32Array temp; temp.Copy(smallerCoefficients); smallerCoefficients.Copy(largerCoefficients); largerCoefficients.Copy(temp); } CFX_Int32Array sumDiff; sumDiff.SetSize(largerCoefficients.GetSize()); int32_t lengthDiff = largerCoefficients.GetSize() - smallerCoefficients.GetSize(); for (int32_t i = 0; i < lengthDiff; i++) { sumDiff[i] = largerCoefficients[i]; } for (int32_t j = lengthDiff; j < largerCoefficients.GetSize(); j++) { sumDiff[j] = (CBC_ReedSolomonGF256::AddOrSubtract( smallerCoefficients[j - lengthDiff], largerCoefficients[j])); } CBC_ReedSolomonGF256Poly* temp = new CBC_ReedSolomonGF256Poly(); temp->Init(m_field, &sumDiff, e); BC_EXCEPTION_CHECK_ReturnValue(e, nullptr); return temp; }
CBC_CommonDecoderResult* CBC_DataMatrixDecodedBitStreamParser::Decode( CFX_ByteArray& bytes, int32_t& e) { CBC_CommonBitSource bits(&bytes); CFX_ByteString result; CFX_ByteString resultTrailer; CFX_Int32Array byteSegments; int32_t mode = ASCII_ENCODE; do { if (mode == 1) { mode = DecodeAsciiSegment(&bits, result, resultTrailer, e); BC_EXCEPTION_CHECK_ReturnValue(e, NULL); } else { switch (mode) { case 2: DecodeC40Segment(&bits, result, e); BC_EXCEPTION_CHECK_ReturnValue(e, NULL); break; case 3: DecodeTextSegment(&bits, result, e); BC_EXCEPTION_CHECK_ReturnValue(e, NULL); break; case 4: DecodeAnsiX12Segment(&bits, result, e); BC_EXCEPTION_CHECK_ReturnValue(e, NULL); break; case 5: DecodeEdifactSegment(&bits, result, e); BC_EXCEPTION_CHECK_ReturnValue(e, NULL); break; case 6: DecodeBase256Segment(&bits, result, byteSegments, e); BC_EXCEPTION_CHECK_ReturnValue(e, NULL); break; default: NULL; e = BCExceptionFormatException; return NULL; } mode = ASCII_ENCODE; } } while (mode != PAD_ENCODE && bits.Available() > 0); if (resultTrailer.GetLength() > 0) { result += resultTrailer; } CBC_CommonDecoderResult* tempCp = new CBC_CommonDecoderResult(); tempCp->Init(bytes, result, (byteSegments.GetSize() <= 0) ? CFX_Int32Array() : byteSegments, NULL, e); BC_EXCEPTION_CHECK_ReturnValue(e, NULL); return tempCp; }
bool CXFA_FFListBox::IsDataChanged() { CFX_Int32Array iSelArray; m_pDataAcc->GetSelectedItems(iSelArray); int32_t iOldSels = iSelArray.GetSize(); CFWL_ListBox* pListBox = (CFWL_ListBox*)m_pNormalWidget; int32_t iSels = pListBox->CountSelItems(); if (iOldSels != iSels) return true; for (int32_t i = 0; i < iSels; ++i) { CFWL_ListItem* hlistItem = pListBox->GetItem(iSelArray[i]); if (!(pListBox->GetItemStates(hlistItem) & FWL_ITEMSTATE_LTB_Selected)) return true; } return false; }
bool CXFA_FFComboBox::UpdateFWLData() { if (!m_pNormalWidget) { return false; } CFX_Int32Array iSelArray; m_pDataAcc->GetSelectedItems(iSelArray); int32_t iSelCount = iSelArray.GetSize(); if (iSelCount > 0) { ((CFWL_ComboBox*)m_pNormalWidget)->SetCurSel(iSelArray[0]); } else { CFX_WideString wsText; ((CFWL_ComboBox*)m_pNormalWidget)->SetCurSel(-1); m_pDataAcc->GetValue(wsText, XFA_VALUEPICTURE_Raw); ((CFWL_ComboBox*)m_pNormalWidget)->SetEditText(wsText); } m_pNormalWidget->Update(); return true; }
bool CXFA_FFListBox::UpdateFWLData() { if (!m_pNormalWidget) { return false; } CFWL_ListBox* pListBox = ((CFWL_ListBox*)m_pNormalWidget); CFX_ArrayTemplate<CFWL_ListItem*> selItemArray; CFX_Int32Array iSelArray; m_pDataAcc->GetSelectedItems(iSelArray); int32_t iSelCount = iSelArray.GetSize(); for (int32_t j = 0; j < iSelCount; j++) { CFWL_ListItem* lpItemSel = pListBox->GetSelItem(iSelArray[j]); selItemArray.Add(lpItemSel); } pListBox->SetSelItem(pListBox->GetSelItem(-1), false); for (int32_t i = 0; i < iSelCount; i++) { ((CFWL_ListBox*)m_pNormalWidget)->SetSelItem(selItemArray[i], true); } m_pNormalWidget->Update(); return true; }
FX_BOOL CXFA_FFListBox::IsDataChanged() { CFX_Int32Array iSelArray; m_pDataAcc->GetSelectedItems(iSelArray); int32_t iOldSels = iSelArray.GetSize(); CFWL_ListBox* pListBox = (CFWL_ListBox*)m_pNormalWidget; int32_t iSels = pListBox->CountSelItems(); if (iOldSels == iSels) { int32_t iIndex = 0; for (; iIndex < iSels; iIndex++) { FWL_HLISTITEM hlistItem = pListBox->GetItem(iSelArray[iIndex]); if (!(pListBox->GetItemStates(hlistItem) && FWL_ITEMSTATE_LTB_Selected)) { break; } } if (iIndex == iSels) { return FALSE; } } return TRUE; }
FX_BOOL CXFA_FFListBox::UpdateFWLData() { if (!m_pNormalWidget) { return FALSE; } CFWL_ListBox* pListBox = ((CFWL_ListBox*)m_pNormalWidget); CFX_ArrayTemplate<FWL_HLISTITEM> selItemArray; CFX_Int32Array iSelArray; m_pDataAcc->GetSelectedItems(iSelArray); int32_t iSelCount = iSelArray.GetSize(); for (int32_t j = 0; j < iSelCount; j++) { FWL_HLISTITEM lpItemSel = pListBox->GetSelItem(iSelArray[j]); selItemArray.Add(lpItemSel); } pListBox->SetSelItem(pListBox->GetSelItem(-1), FALSE); for (int32_t i = 0; i < iSelCount; i++) { ((CFWL_ListBox*)m_pNormalWidget)->SetSelItem(selItemArray[i], TRUE); } m_pNormalWidget->Update(); return TRUE; }
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(); }
int32_t CXFA_ResolveProcessor::XFA_ResolveNodes_GetFilter( const CFX_WideStringC& wsExpression, int32_t nStart, CXFA_ResolveNodesData& rnd) { FXSYS_assert(nStart > -1); int32_t iLength = wsExpression.GetLength(); if (nStart >= iLength) { return 0; } CFX_WideString& wsName = rnd.m_wsName; CFX_WideString& wsCondition = rnd.m_wsCondition; FX_WCHAR* pNameBuf = wsName.GetBuffer(iLength - nStart); FX_WCHAR* pConditionBuf = wsCondition.GetBuffer(iLength - nStart); int32_t nNameCount = 0; int32_t nConditionCount = 0; CFX_Int32Array stack; int32_t nType = -1; const FX_WCHAR* pSrc = wsExpression.GetPtr(); FX_WCHAR wPrev = 0, wCur; FX_BOOL bIsCondition = FALSE; while (nStart < iLength) { wCur = pSrc[nStart++]; if (wCur == '.') { if (wPrev == '\\') { pNameBuf[nNameCount - 1] = wPrev = '.'; continue; } if (nNameCount == 0) { pNameBuf[nNameCount++] = wCur; continue; } FX_WCHAR wLookahead = nStart < iLength ? pSrc[nStart] : 0; if (wLookahead != '[' && wLookahead != '(') { if (nType < 0) { break; } } } if (wCur == '[' || wCur == '(') { bIsCondition = TRUE; } else if (wCur == '.' && nStart < iLength && (pSrc[nStart] == '[' || pSrc[nStart] == '(')) { bIsCondition = TRUE; } if (bIsCondition) { pConditionBuf[nConditionCount++] = wCur; } else { pNameBuf[nNameCount++] = wCur; } FX_BOOL bRecursive = TRUE; switch (nType) { case 0: if (wCur == ']') { nType = XFA_ResolveNodes_PopStack(stack); bRecursive = FALSE; } break; case 1: if (wCur == ')') { nType = XFA_ResolveNodes_PopStack(stack); bRecursive = FALSE; } break; case 2: if (wCur == '"') { nType = XFA_ResolveNodes_PopStack(stack); bRecursive = FALSE; } break; } if (bRecursive) { switch (wCur) { case '[': stack.Add(nType); nType = 0; break; case '(': stack.Add(nType); nType = 1; break; case '"': stack.Add(nType); nType = 2; break; } } wPrev = wCur; } if (stack.GetSize() > 0) { return -1; } wsName.ReleaseBuffer(nNameCount); wsName.TrimLeft(); wsName.TrimRight(); wsCondition.ReleaseBuffer(nConditionCount); wsCondition.TrimLeft(); wsCondition.TrimRight(); rnd.m_uHashName = FX_HashCode_String_GetW(wsName, wsName.GetLength()); return nStart; }