| OLD | NEW |
| 1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| 6 | 6 |
| 7 #include "../../include/formfiller/FormFiller.h" | 7 #include "../../include/formfiller/FormFiller.h" |
| 8 #include "../../include/formfiller/FFL_FormFiller.h" | 8 #include "../../include/formfiller/FFL_FormFiller.h" |
| 9 #include "../../include/formfiller/FFL_ListBox.h" | 9 #include "../../include/formfiller/FFL_ListBox.h" |
| 10 //#include "../../include/formfiller/FFL_Module.h" | 10 //#include "../../include/formfiller/FFL_Module.h" |
| 11 #include "../../include/formfiller/FFL_IFormFiller.h" | 11 #include "../../include/formfiller/FFL_IFormFiller.h" |
| 12 //#include "../../include/formfiller/FFL_Undo.h" | 12 //#include "../../include/formfiller/FFL_Undo.h" |
| 13 #include "../../include/formfiller/FFL_CBA_Fontmap.h" | 13 #include "../../include/formfiller/FFL_CBA_Fontmap.h" |
| 14 | 14 |
| 15 | 15 #define FFL_DEFAULTLISTBOXFONTSIZE 12.0f |
| 16 #define FFL_DEFAULTLISTBOXFONTSIZE 12.0f | 16 |
| 17 | 17 /* ------------------------------- CFFL_ListBox ------------------------------- |
| 18 | 18 */ |
| 19 /* ------------------------------- CFFL_ListBox -------------------------------
*/ | 19 |
| 20 | 20 CFFL_ListBox::CFFL_ListBox(CPDFDoc_Environment* pApp, CPDFSDK_Annot* pWidget) |
| 21 CFFL_ListBox::CFFL_ListBox(CPDFDoc_Environment* pApp, CPDFSDK_Annot* pWidget) : | 21 : CFFL_FormFiller(pApp, pWidget), m_pFontMap(NULL) { |
| 22 CFFL_FormFiller(pApp, pWidget), | 22 } |
| 23 m_pFontMap(NULL) | 23 |
| 24 { | 24 CFFL_ListBox::~CFFL_ListBox() { |
| 25 } | 25 if (m_pFontMap) { |
| 26 | 26 delete m_pFontMap; |
| 27 CFFL_ListBox::~CFFL_ListBox() | 27 m_pFontMap = NULL; |
| 28 { | 28 } |
| 29 if (m_pFontMap) | 29 } |
| 30 { | 30 |
| 31 delete m_pFontMap; | 31 PWL_CREATEPARAM CFFL_ListBox::GetCreateParam() { |
| 32 m_pFontMap = NULL; | 32 PWL_CREATEPARAM cp = CFFL_FormFiller::GetCreateParam(); |
| 33 } | 33 |
| 34 } | 34 ASSERT(m_pWidget != NULL); |
| 35 | 35 FX_DWORD dwFieldFlag = m_pWidget->GetFieldFlags(); |
| 36 PWL_CREATEPARAM CFFL_ListBox::GetCreateParam() | 36 |
| 37 { | 37 if (dwFieldFlag & FIELDFLAG_MULTISELECT) { |
| 38 PWL_CREATEPARAM cp = CFFL_FormFiller::GetCreateParam(); | 38 cp.dwFlags |= PLBS_MULTIPLESEL; |
| 39 | 39 } |
| 40 ASSERT(m_pWidget != NULL); | 40 |
| 41 FX_DWORD dwFieldFlag = m_pWidget->GetFieldFlags(); | 41 if (dwFieldFlag & FIELDFLAG_COMMITONSELCHANGE) { |
| 42 | 42 // cp.dwFlags |= PLBS_COMMITSELECTEDVALUE; |
| 43 if (dwFieldFlag & FIELDFLAG_MULTISELECT) | 43 } |
| 44 { | 44 |
| 45 cp.dwFlags |= PLBS_MULTIPLESEL; | 45 cp.dwFlags |= PWS_VSCROLL; |
| 46 } | 46 |
| 47 | 47 if (cp.dwFlags & PWS_AUTOFONTSIZE) |
| 48 if (dwFieldFlag & FIELDFLAG_COMMITONSELCHANGE) | 48 cp.fFontSize = FFL_DEFAULTLISTBOXFONTSIZE; |
| 49 { | 49 |
| 50 //cp.dwFlags |= PLBS_COMMITSELECTEDVALUE; | 50 if (!m_pFontMap) { |
| 51 } | 51 ASSERT(this->m_pApp != NULL); |
| 52 | 52 m_pFontMap = new CBA_FontMap( |
| 53 cp.dwFlags |= PWS_VSCROLL; | 53 m_pWidget, |
| 54 | 54 m_pApp->GetSysHandler()); //, ISystemHandle::GetSystemHandler(m_pApp)); |
| 55 if (cp.dwFlags & PWS_AUTOFONTSIZE) | 55 m_pFontMap->Initial(); |
| 56 cp.fFontSize = FFL_DEFAULTLISTBOXFONTSIZE; | 56 } |
| 57 | 57 cp.pFontMap = m_pFontMap; |
| 58 if (!m_pFontMap) | 58 |
| 59 { | 59 return cp; |
| 60 ASSERT(this->m_pApp != NULL); | 60 } |
| 61 m_pFontMap = new CBA_FontMap(m_pWidget,m_pApp->GetSysHandler());
//, ISystemHandle::GetSystemHandler(m_pApp)); | 61 |
| 62 m_pFontMap->Initial(); | 62 CPWL_Wnd* CFFL_ListBox::NewPDFWindow(const PWL_CREATEPARAM& cp, |
| 63 } | 63 CPDFSDK_PageView* pPageView) { |
| 64 cp.pFontMap = m_pFontMap; | 64 CPWL_ListBox* pWnd = new CPWL_ListBox(); |
| 65 | 65 pWnd->AttachFFLData(this); |
| 66 return cp; | 66 pWnd->Create(cp); |
| 67 } | 67 |
| 68 | 68 ASSERT(m_pApp != NULL); |
| 69 CPWL_Wnd* CFFL_ListBox::NewPDFWindow(const PWL_CREATEPARAM& cp, CPDFSDK_PageView
* pPageView) | 69 CFFL_IFormFiller* pIFormFiller = m_pApp->GetIFormFiller(); |
| 70 { | 70 pWnd->SetFillerNotify(pIFormFiller); |
| 71 CPWL_ListBox* pWnd = new CPWL_ListBox(); | 71 |
| 72 pWnd->AttachFFLData(this); | 72 ASSERT(m_pWidget != NULL); |
| 73 pWnd->Create(cp); | 73 |
| 74 | 74 for (FX_INT32 i = 0, sz = m_pWidget->CountOptions(); i < sz; i++) |
| 75 ASSERT(m_pApp != NULL); | 75 pWnd->AddString(m_pWidget->GetOptionLabel(i)); |
| 76 CFFL_IFormFiller* pIFormFiller = m_pApp->GetIFormFiller(); | 76 |
| 77 pWnd->SetFillerNotify(pIFormFiller); | 77 if (pWnd->HasFlag(PLBS_MULTIPLESEL)) { |
| 78 | 78 m_OriginSelections.RemoveAll(); |
| 79 ASSERT(m_pWidget != NULL); | 79 |
| 80 | 80 FX_BOOL bSetCaret = FALSE; |
| 81 for (FX_INT32 i=0,sz=m_pWidget->CountOptions(); i<sz; i++) | 81 for (FX_INT32 i = 0, sz = m_pWidget->CountOptions(); i < sz; i++) { |
| 82 pWnd->AddString(m_pWidget->GetOptionLabel(i)); | 82 if (m_pWidget->IsOptionSelected(i)) { |
| 83 | 83 if (!bSetCaret) { |
| 84 if (pWnd->HasFlag(PLBS_MULTIPLESEL)) | 84 pWnd->SetCaret(i); |
| 85 { | 85 bSetCaret = TRUE; |
| 86 m_OriginSelections.RemoveAll(); | 86 } |
| 87 | 87 pWnd->Select(i); |
| 88 FX_BOOL bSetCaret = FALSE; | 88 m_OriginSelections.SetAt(i, NULL); |
| 89 for (FX_INT32 i=0,sz=m_pWidget->CountOptions(); i<sz; i++) | 89 } |
| 90 { | 90 } |
| 91 if (m_pWidget->IsOptionSelected(i)) | 91 } else { |
| 92 { | 92 for (int i = 0, sz = m_pWidget->CountOptions(); i < sz; i++) { |
| 93 if (!bSetCaret) | 93 if (m_pWidget->IsOptionSelected(i)) { |
| 94 { | 94 pWnd->Select(i); |
| 95 pWnd->SetCaret(i); | 95 break; |
| 96 bSetCaret = TRUE; | 96 } |
| 97 } | 97 } |
| 98 pWnd->Select(i); | 98 } |
| 99 m_OriginSelections.SetAt(i, NULL); | 99 |
| 100 } | 100 pWnd->SetTopVisibleIndex(m_pWidget->GetTopVisibleIndex()); |
| 101 } | 101 |
| 102 } | 102 return pWnd; |
| 103 else | 103 } |
| 104 { | 104 |
| 105 for (int i=0,sz=m_pWidget->CountOptions(); i<sz; i++) | 105 FX_BOOL CFFL_ListBox::OnChar(CPDFSDK_Annot* pAnnot, |
| 106 { | 106 FX_UINT nChar, |
| 107 if (m_pWidget->IsOptionSelected(i)) | 107 FX_UINT nFlags) { |
| 108 { | 108 return CFFL_FormFiller::OnChar(pAnnot, nChar, nFlags); |
| 109 pWnd->Select(i); | 109 } |
| 110 break; | 110 |
| 111 } | 111 FX_BOOL CFFL_ListBox::IsDataChanged(CPDFSDK_PageView* pPageView) { |
| 112 } | 112 ASSERT(m_pWidget != NULL); |
| 113 } | 113 |
| 114 | 114 if (CPWL_ListBox* pListBox = (CPWL_ListBox*)GetPDFWindow(pPageView, FALSE)) { |
| 115 pWnd->SetTopVisibleIndex(m_pWidget->GetTopVisibleIndex()); | 115 if (m_pWidget->GetFieldFlags() & FIELDFLAG_MULTISELECT) { |
| 116 | 116 int nSelCount = 0; |
| 117 return pWnd; | 117 for (FX_INT32 i = 0, sz = pListBox->GetCount(); i < sz; i++) { |
| 118 } | 118 if (pListBox->IsItemSelected(i)) { |
| 119 | 119 void* p = NULL; |
| 120 | 120 if (!m_OriginSelections.Lookup(i, p)) |
| 121 FX_BOOL CFFL_ListBox::OnChar(CPDFSDK_Annot* pAnnot, FX_UINT nChar, FX_UINT nFlag
s) | 121 return TRUE; |
| 122 { | 122 |
| 123 return CFFL_FormFiller::OnChar(pAnnot, nChar, nFlags); | 123 nSelCount++; |
| 124 } | 124 } |
| 125 | 125 } |
| 126 FX_BOOL CFFL_ListBox::IsDataChanged(CPDFSDK_PageView* pPageView) | 126 |
| 127 { | 127 return nSelCount != m_OriginSelections.GetCount(); |
| 128 ASSERT(m_pWidget != NULL); | 128 } else { |
| 129 | 129 return pListBox->GetCurSel() != m_pWidget->GetSelectedIndex(0); |
| 130 if (CPWL_ListBox* pListBox = (CPWL_ListBox*)GetPDFWindow(pPageView, FALS
E)) | 130 } |
| 131 { | 131 } |
| 132 if (m_pWidget->GetFieldFlags() & FIELDFLAG_MULTISELECT) | 132 |
| 133 { | 133 return FALSE; |
| 134 int nSelCount = 0; | 134 } |
| 135 for (FX_INT32 i=0,sz=pListBox->GetCount(); i<sz; i++) | 135 |
| 136 { | 136 void CFFL_ListBox::SaveData(CPDFSDK_PageView* pPageView) { |
| 137 if (pListBox->IsItemSelected(i)) | 137 ASSERT(m_pWidget != NULL); |
| 138 { | 138 |
| 139 void* p = NULL; | 139 if (CPWL_ListBox* pListBox = (CPWL_ListBox*)GetPDFWindow(pPageView, FALSE)) { |
| 140 if (!m_OriginSelections.Lookup(i, p)) | 140 CFX_IntArray aOldSelect, aNewSelect; |
| 141 return TRUE; | 141 |
| 142 | 142 { |
| 143 nSelCount++; | 143 for (int i = 0, sz = m_pWidget->CountOptions(); i < sz; i++) { |
| 144 } | 144 if (m_pWidget->IsOptionSelected(i)) { |
| 145 } | 145 aOldSelect.Add(i); |
| 146 | 146 } |
| 147 return nSelCount != m_OriginSelections.GetCount(); | 147 } |
| 148 } | 148 } |
| 149 else | 149 |
| 150 { | 150 FX_INT32 nNewTopIndex = pListBox->GetTopVisibleIndex(); |
| 151 return pListBox->GetCurSel() != m_pWidget->GetSelectedIn
dex(0); | 151 |
| 152 } | 152 m_pWidget->ClearSelection(FALSE); |
| 153 } | 153 |
| 154 | 154 if (m_pWidget->GetFieldFlags() & FIELDFLAG_MULTISELECT) { |
| 155 return FALSE; | 155 for (FX_INT32 i = 0, sz = pListBox->GetCount(); i < sz; i++) { |
| 156 } | 156 if (pListBox->IsItemSelected(i)) { |
| 157 | 157 m_pWidget->SetOptionSelection(i, TRUE, FALSE); |
| 158 void CFFL_ListBox::SaveData(CPDFSDK_PageView* pPageView) | 158 aNewSelect.Add(i); |
| 159 { | 159 } |
| 160 ASSERT(m_pWidget != NULL); | 160 } |
| 161 | 161 } else { |
| 162 if (CPWL_ListBox* pListBox = (CPWL_ListBox*)GetPDFWindow(pPageView, FALS
E)) | 162 m_pWidget->SetOptionSelection(pListBox->GetCurSel(), TRUE, FALSE); |
| 163 { | 163 aNewSelect.Add(pListBox->GetCurSel()); |
| 164 CFX_IntArray aOldSelect, aNewSelect; | 164 } |
| 165 | 165 |
| 166 { | 166 m_pWidget->SetTopVisibleIndex(nNewTopIndex); |
| 167 for (int i=0,sz=m_pWidget->CountOptions(); i<sz; i++) | 167 m_pWidget->ResetFieldAppearance(TRUE); |
| 168 { | 168 m_pWidget->UpdateField(); |
| 169 if (m_pWidget->IsOptionSelected(i)) | 169 SetChangeMark(); |
| 170 { | 170 } |
| 171 aOldSelect.Add(i); | 171 } |
| 172 } | 172 |
| 173 } | 173 void CFFL_ListBox::GetActionData(CPDFSDK_PageView* pPageView, |
| 174 } | 174 CPDF_AAction::AActionType type, |
| 175 | 175 PDFSDK_FieldAction& fa) { |
| 176 | 176 switch (type) { |
| 177 FX_INT32 nNewTopIndex = pListBox->GetTopVisibleIndex(); | 177 case CPDF_AAction::Validate: |
| 178 | 178 if (m_pWidget->GetFieldFlags() & FIELDFLAG_MULTISELECT) { |
| 179 m_pWidget->ClearSelection(FALSE); | 179 fa.sValue = L""; |
| 180 | 180 } else { |
| 181 if (m_pWidget->GetFieldFlags() & FIELDFLAG_MULTISELECT) | 181 if (CPWL_ListBox* pListBox = |
| 182 { | 182 (CPWL_ListBox*)GetPDFWindow(pPageView, FALSE)) { |
| 183 for (FX_INT32 i=0,sz=pListBox->GetCount(); i<sz; i++) | 183 ASSERT(m_pWidget != NULL); |
| 184 { | 184 FX_INT32 nCurSel = pListBox->GetCurSel(); |
| 185 if (pListBox->IsItemSelected(i)) | 185 if (nCurSel >= 0) |
| 186 { | 186 fa.sValue = m_pWidget->GetOptionLabel(nCurSel); |
| 187 m_pWidget->SetOptionSelection(i, TRUE, F
ALSE); | 187 } |
| 188 aNewSelect.Add(i); | 188 } |
| 189 } | 189 break; |
| 190 } | 190 case CPDF_AAction::LoseFocus: |
| 191 } | 191 case CPDF_AAction::GetFocus: |
| 192 else | 192 if (m_pWidget->GetFieldFlags() & FIELDFLAG_MULTISELECT) { |
| 193 { | 193 fa.sValue = L""; |
| 194 m_pWidget->SetOptionSelection(pListBox->GetCurSel(), TRU
E, FALSE); | 194 } else { |
| 195 aNewSelect.Add(pListBox->GetCurSel()); | 195 ASSERT(m_pWidget != NULL); |
| 196 } | 196 FX_INT32 nCurSel = m_pWidget->GetSelectedIndex(0); |
| 197 | 197 if (nCurSel >= 0) |
| 198 m_pWidget->SetTopVisibleIndex(nNewTopIndex); | 198 fa.sValue = m_pWidget->GetOptionLabel(nCurSel); |
| 199 m_pWidget->ResetFieldAppearance(TRUE); | 199 } |
| 200 m_pWidget->UpdateField(); | 200 break; |
| 201 SetChangeMark(); | 201 default: |
| 202 } | 202 break; |
| 203 } | 203 } |
| 204 | 204 } |
| 205 void CFFL_ListBox::GetActionData(CPDFSDK_PageView* pPageView, CPDF_AAction::AAct
ionType type, | 205 |
| 206 PDFSDK_FieldAction& fa) | 206 void CFFL_ListBox::SetActionData(CPDFSDK_PageView* pPageView, |
| 207 { | 207 CPDF_AAction::AActionType type, |
| 208 switch (type) | 208 const PDFSDK_FieldAction& fa) { |
| 209 { | 209 } |
| 210 case CPDF_AAction::Validate: | 210 |
| 211 if (m_pWidget->GetFieldFlags() & FIELDFLAG_MULTISELECT) | 211 void CFFL_ListBox::SaveState(CPDFSDK_PageView* pPageView) { |
| 212 { | 212 ASSERT(pPageView != NULL); |
| 213 fa.sValue = L""; | 213 |
| 214 } | 214 if (CPWL_ListBox* pListBox = (CPWL_ListBox*)GetPDFWindow(pPageView, FALSE)) { |
| 215 else | 215 for (FX_INT32 i = 0, sz = pListBox->GetCount(); i < sz; i++) { |
| 216 { | 216 if (pListBox->IsItemSelected(i)) { |
| 217 if (CPWL_ListBox* pListBox = (CPWL_ListBox*)GetPDFWindow
(pPageView, FALSE)) | 217 m_State.Add(i); |
| 218 { | 218 } |
| 219 ASSERT(m_pWidget != NULL); | 219 } |
| 220 FX_INT32 nCurSel = pListBox->GetCurSel(); | 220 } |
| 221 if (nCurSel >= 0) | 221 } |
| 222 fa.sValue = m_pWidget->GetOptionLabel(nC
urSel); | 222 |
| 223 } | 223 void CFFL_ListBox::RestoreState(CPDFSDK_PageView* pPageView) { |
| 224 } | 224 if (CPWL_ListBox* pListBox = (CPWL_ListBox*)GetPDFWindow(pPageView, FALSE)) { |
| 225 break; | 225 for (int i = 0, sz = m_State.GetSize(); i < sz; i++) |
| 226 case CPDF_AAction::LoseFocus: | 226 pListBox->Select(m_State[i]); |
| 227 case CPDF_AAction::GetFocus: | 227 } |
| 228 if (m_pWidget->GetFieldFlags() & FIELDFLAG_MULTISELECT) | 228 } |
| 229 { | 229 |
| 230 fa.sValue = L""; | 230 CPWL_Wnd* CFFL_ListBox::ResetPDFWindow(CPDFSDK_PageView* pPageView, |
| 231 } | 231 FX_BOOL bRestoreValue) { |
| 232 else | 232 if (bRestoreValue) |
| 233 { | 233 SaveState(pPageView); |
| 234 ASSERT(m_pWidget != NULL); | 234 |
| 235 FX_INT32 nCurSel = m_pWidget->GetSelectedIndex(0); | 235 DestroyPDFWindow(pPageView); |
| 236 if (nCurSel >= 0) | 236 |
| 237 fa.sValue = m_pWidget->GetOptionLabel(nCurSel); | 237 CPWL_Wnd* pRet = NULL; |
| 238 } | 238 |
| 239 break; | 239 if (bRestoreValue) { |
| 240 default: | 240 RestoreState(pPageView); |
| 241 break; | 241 pRet = this->GetPDFWindow(pPageView, FALSE); |
| 242 } | 242 } else |
| 243 } | 243 pRet = this->GetPDFWindow(pPageView, TRUE); |
| 244 | 244 |
| 245 | 245 m_pWidget->UpdateField(); |
| 246 void CFFL_ListBox::SetActionData(CPDFSDK_PageView* pPageView, CPDF_AAction::AAct
ionType type, | 246 |
| 247 const PDFSDK_Fie
ldAction& fa) | 247 return pRet; |
| 248 { | 248 } |
| 249 } | 249 |
| 250 | 250 void CFFL_ListBox::OnKeyStroke(FX_BOOL bKeyDown, FX_DWORD nFlag) { |
| 251 void CFFL_ListBox::SaveState(CPDFSDK_PageView* pPageView) | 251 ASSERT(m_pWidget != NULL); |
| 252 { | 252 |
| 253 ASSERT(pPageView != NULL); | 253 int nFlags = m_pWidget->GetFieldFlags(); |
| 254 | 254 |
| 255 if (CPWL_ListBox* pListBox = (CPWL_ListBox*)GetPDFWindow(pPageView, FALS
E)) | 255 if (nFlags & FIELDFLAG_COMMITONSELCHANGE) { |
| 256 { | 256 if (m_bValid) { |
| 257 for (FX_INT32 i=0,sz=pListBox->GetCount(); i<sz; i++) | 257 CPDFSDK_PageView* pPageView = this->GetCurPageView(); |
| 258 { | 258 ASSERT(pPageView != NULL); |
| 259 if (pListBox->IsItemSelected(i)) | 259 |
| 260 { | 260 if (CommitData(pPageView, nFlag)) { |
| 261 m_State.Add(i); | 261 DestroyPDFWindow(pPageView); |
| 262 } | 262 m_bValid = FALSE; |
| 263 } | 263 } |
| 264 } | 264 } |
| 265 } | 265 } |
| 266 | 266 } |
| 267 void CFFL_ListBox::RestoreState(CPDFSDK_PageView* pPageView) | |
| 268 { | |
| 269 if (CPWL_ListBox* pListBox = (CPWL_ListBox*)GetPDFWindow(pPageView, FALS
E)) | |
| 270 { | |
| 271 for (int i=0,sz=m_State.GetSize(); i<sz; i++) | |
| 272 pListBox->Select(m_State[i]); | |
| 273 } | |
| 274 } | |
| 275 | |
| 276 CPWL_Wnd* CFFL_ListBox::ResetPDFWindow(CPDFSDK_PageView* pPageView, FX_BOOL bRes
toreValue) | |
| 277 { | |
| 278 if (bRestoreValue) | |
| 279 SaveState(pPageView); | |
| 280 | |
| 281 DestroyPDFWindow(pPageView); | |
| 282 | |
| 283 CPWL_Wnd* pRet = NULL; | |
| 284 | |
| 285 if (bRestoreValue) | |
| 286 { | |
| 287 RestoreState(pPageView); | |
| 288 pRet = this->GetPDFWindow(pPageView, FALSE); | |
| 289 } | |
| 290 else | |
| 291 pRet = this->GetPDFWindow(pPageView, TRUE); | |
| 292 | |
| 293 m_pWidget->UpdateField(); | |
| 294 | |
| 295 return pRet; | |
| 296 } | |
| 297 | |
| 298 void CFFL_ListBox::OnKeyStroke(FX_BOOL bKeyDown, FX_DWORD nFlag) | |
| 299 { | |
| 300 ASSERT(m_pWidget != NULL); | |
| 301 | |
| 302 int nFlags = m_pWidget->GetFieldFlags(); | |
| 303 | |
| 304 if (nFlags & FIELDFLAG_COMMITONSELCHANGE) | |
| 305 { | |
| 306 if (m_bValid) | |
| 307 { | |
| 308 CPDFSDK_PageView* pPageView = this->GetCurPageView(); | |
| 309 ASSERT(pPageView != NULL); | |
| 310 | |
| 311 if (CommitData(pPageView, nFlag)) | |
| 312 { | |
| 313 DestroyPDFWindow(pPageView); | |
| 314 m_bValid = FALSE; | |
| 315 } | |
| 316 } | |
| 317 } | |
| 318 } | |
| 319 | |
| OLD | NEW |