CPWL_Wnd* CFFL_ListBox::NewPDFWindow(const PWL_CREATEPARAM& cp, CPDFSDK_PageView* pPageView) { CPWL_ListBox* pWnd = new CPWL_ListBox(); pWnd->AttachFFLData(this); pWnd->Create(cp); ASSERT(m_pApp != NULL); CFFL_IFormFiller* pIFormFiller = m_pApp->GetIFormFiller(); pWnd->SetFillerNotify(pIFormFiller); for (int32_t i=0,sz=m_pWidget->CountOptions(); i<sz; i++) pWnd->AddString(m_pWidget->GetOptionLabel(i).c_str()); if (pWnd->HasFlag(PLBS_MULTIPLESEL)) { m_OriginSelections.clear(); FX_BOOL bSetCaret = FALSE; for (int32_t i=0,sz=m_pWidget->CountOptions(); i<sz; i++) { if (m_pWidget->IsOptionSelected(i)) { if (!bSetCaret) { pWnd->SetCaret(i); bSetCaret = TRUE; } pWnd->Select(i); m_OriginSelections.insert(i); } } } else { for (int i=0,sz=m_pWidget->CountOptions(); i<sz; i++) { if (m_pWidget->IsOptionSelected(i)) { pWnd->Select(i); break; } } } pWnd->SetTopVisibleIndex(m_pWidget->GetTopVisibleIndex()); return pWnd; }