diff options
Diffstat (limited to 'fpdfsdk/src/formfiller/FFL_ListBox.cpp')
-rw-r--r-- | fpdfsdk/src/formfiller/FFL_ListBox.cpp | 52 |
1 files changed, 21 insertions, 31 deletions
diff --git a/fpdfsdk/src/formfiller/FFL_ListBox.cpp b/fpdfsdk/src/formfiller/FFL_ListBox.cpp index 4622d4fcef..28dcf340ad 100644 --- a/fpdfsdk/src/formfiller/FFL_ListBox.cpp +++ b/fpdfsdk/src/formfiller/FFL_ListBox.cpp @@ -75,7 +75,7 @@ CPWL_Wnd* CFFL_ListBox::NewPDFWindow(const PWL_CREATEPARAM& cp, CPDFSDK_PageView if (pWnd->HasFlag(PLBS_MULTIPLESEL)) { - m_OriginSelections.RemoveAll(); + m_OriginSelections.clear(); FX_BOOL bSetCaret = FALSE; for (int32_t i=0,sz=m_pWidget->CountOptions(); i<sz; i++) @@ -88,7 +88,7 @@ CPWL_Wnd* CFFL_ListBox::NewPDFWindow(const PWL_CREATEPARAM& cp, CPDFSDK_PageView bSetCaret = TRUE; } pWnd->Select(i); - m_OriginSelections.SetAt(i, NULL); + m_OriginSelections.insert(i); } } } @@ -115,36 +115,26 @@ FX_BOOL CFFL_ListBox::OnChar(CPDFSDK_Annot* pAnnot, FX_UINT nChar, FX_UINT nFlag return CFFL_FormFiller::OnChar(pAnnot, nChar, nFlags); } -FX_BOOL CFFL_ListBox::IsDataChanged(CPDFSDK_PageView* pPageView) +FX_BOOL CFFL_ListBox::IsDataChanged(CPDFSDK_PageView* pPageView) { - ASSERT(m_pWidget != NULL); - - if (CPWL_ListBox* pListBox = (CPWL_ListBox*)GetPDFWindow(pPageView, FALSE)) - { - if (m_pWidget->GetFieldFlags() & FIELDFLAG_MULTISELECT) - { - int nSelCount = 0; - for (int32_t i=0,sz=pListBox->GetCount(); i<sz; i++) - { - if (pListBox->IsItemSelected(i)) - { - void* p = NULL; - if (!m_OriginSelections.Lookup(i, p)) - return TRUE; - - nSelCount++; - } - } - - return nSelCount != m_OriginSelections.GetCount(); - } - else - { - return pListBox->GetCurSel() != m_pWidget->GetSelectedIndex(0); - } - } - - return FALSE; + CPWL_ListBox* pListBox = (CPWL_ListBox*)GetPDFWindow(pPageView, FALSE); + if (!pListBox) + return FALSE; + + if (m_pWidget->GetFieldFlags() & FIELDFLAG_MULTISELECT) { + int nSelCount = 0; + for (int32_t i = 0, sz = pListBox->GetCount(); i < sz; ++i) { + if (pListBox->IsItemSelected(i)) { + if (m_OriginSelections.count(i) == 0) + return TRUE; + + nSelCount++; + } + } + + return nSelCount != m_OriginSelections.size(); + } + return pListBox->GetCurSel() != m_pWidget->GetSelectedIndex(0); } void CFFL_ListBox::SaveData(CPDFSDK_PageView* pPageView) |