summaryrefslogtreecommitdiff
path: root/xfa/fxfa/cxfa_ffcombobox.cpp
diff options
context:
space:
mode:
authorLei Zhang <thestig@chromium.org>2018-04-17 15:12:58 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-04-17 15:12:58 +0000
commita4c7ac479d291fc3373b9c2f8f25302ecd53b0d5 (patch)
tree6403f92adcae02ef51897ad932ffc585c2422655 /xfa/fxfa/cxfa_ffcombobox.cpp
parent3900ddb64f30f36fd6696bd2927cf8f151e6ede9 (diff)
downloadpdfium-a4c7ac479d291fc3373b9c2f8f25302ecd53b0d5.tar.xz
Implement FORM_GetFocusedText() API.
If there is a focused form field, get its text. BUG=chromium:753216 Change-Id: I05294f14d05c1c86769055f6c9eaf9177787d9fd Reviewed-on: https://pdfium-review.googlesource.com/12072 Commit-Queue: Lei Zhang <thestig@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'xfa/fxfa/cxfa_ffcombobox.cpp')
-rw-r--r--xfa/fxfa/cxfa_ffcombobox.cpp25
1 files changed, 17 insertions, 8 deletions
diff --git a/xfa/fxfa/cxfa_ffcombobox.cpp b/xfa/fxfa/cxfa_ffcombobox.cpp
index 268d1da2b4..e4de85c517 100644
--- a/xfa/fxfa/cxfa_ffcombobox.cpp
+++ b/xfa/fxfa/cxfa_ffcombobox.cpp
@@ -116,14 +116,7 @@ bool CXFA_FFComboBox::CommitData() {
}
bool CXFA_FFComboBox::IsDataChanged() {
- auto* pFWLcombobox = ToComboBox(m_pNormalWidget.get());
- WideString wsText = pFWLcombobox->GetEditText();
- int32_t iCursel = pFWLcombobox->GetCurSel();
- if (iCursel >= 0) {
- WideString wsSel = pFWLcombobox->GetTextByIndex(iCursel);
- if (wsSel == wsText)
- wsText = m_pNode->GetChoiceListItem(iCursel, true).value_or(L"");
- }
+ WideString wsText = GetCurrentText();
if (m_pNode->GetValue(XFA_VALUEPICTURE_Raw) == wsText)
return false;
@@ -138,6 +131,18 @@ void CXFA_FFComboBox::FWLEventSelChange(CXFA_EventParam* pParam) {
m_pNode->ProcessEvent(GetDocView(), XFA_AttributeEnum::Change, pParam);
}
+WideString CXFA_FFComboBox::GetCurrentText() const {
+ auto* pFWLcombobox = ToComboBox(m_pNormalWidget.get());
+ WideString wsText = pFWLcombobox->GetEditText();
+ int32_t iCursel = pFWLcombobox->GetCurSel();
+ if (iCursel >= 0) {
+ WideString wsSel = pFWLcombobox->GetTextByIndex(iCursel);
+ if (wsSel == wsText)
+ wsText = m_pNode->GetChoiceListItem(iCursel, true).value_or(L"");
+ }
+ return wsText;
+}
+
uint32_t CXFA_FFComboBox::GetAlignment() {
CXFA_Para* para = m_pNode->GetParaIfExists();
if (!para)
@@ -259,6 +264,10 @@ void CXFA_FFComboBox::DeSelect() {
ToComboBox(m_pNormalWidget.get())->EditDeSelect();
}
+WideString CXFA_FFComboBox::GetText() {
+ return GetCurrentText();
+}
+
FormFieldType CXFA_FFComboBox::GetFormFieldType() {
return FormFieldType::kXFA_ComboBox;
}