Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(511)

Side by Side Diff: core/fpdfdoc/cpdf_interform.cpp

Issue 2477443002: Remove FX_BOOL from core (Closed)
Patch Set: Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « core/fpdfdoc/cpdf_interform.h ('k') | core/fpdfdoc/cpdf_metadata.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 PDFium Authors. All rights reserved. 1 // Copyright 2016 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 <vector> 7 #include <vector>
8 8
9 #include "core/fpdfapi/font/cpdf_font.h" 9 #include "core/fpdfapi/font/cpdf_font.h"
10 #include "core/fpdfapi/font/cpdf_fontencoding.h" 10 #include "core/fpdfapi/font/cpdf_fontencoding.h"
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 continue; 156 continue;
157 157
158 if (pSubst->m_Charset == (int)charSet) { 158 if (pSubst->m_Charset == (int)charSet) {
159 csNameTag = csKey; 159 csNameTag = csKey;
160 return pFind; 160 return pFind;
161 } 161 }
162 } 162 }
163 return nullptr; 163 return nullptr;
164 } 164 }
165 165
166 FX_BOOL FindFont(CPDF_Dictionary* pFormDict, 166 bool FindFont(CPDF_Dictionary* pFormDict,
167 const CPDF_Font* pFont, 167 const CPDF_Font* pFont,
168 CFX_ByteString& csNameTag) { 168 CFX_ByteString& csNameTag) {
169 if (!pFormDict || !pFont) 169 if (!pFormDict || !pFont)
170 return FALSE; 170 return false;
171 171
172 CPDF_Dictionary* pDR = pFormDict->GetDictFor("DR"); 172 CPDF_Dictionary* pDR = pFormDict->GetDictFor("DR");
173 if (!pDR) 173 if (!pDR)
174 return FALSE; 174 return false;
175 175
176 CPDF_Dictionary* pFonts = pDR->GetDictFor("Font"); 176 CPDF_Dictionary* pFonts = pDR->GetDictFor("Font");
177 if (!pFonts) 177 if (!pFonts)
178 return FALSE; 178 return false;
179 179
180 for (const auto& it : *pFonts) { 180 for (const auto& it : *pFonts) {
181 const CFX_ByteString& csKey = it.first; 181 const CFX_ByteString& csKey = it.first;
182 CPDF_Object* pObj = it.second; 182 CPDF_Object* pObj = it.second;
183 if (!pObj) 183 if (!pObj)
184 continue; 184 continue;
185 185
186 CPDF_Dictionary* pElement = ToDictionary(pObj->GetDirect()); 186 CPDF_Dictionary* pElement = ToDictionary(pObj->GetDirect());
187 if (!pElement) 187 if (!pElement)
188 continue; 188 continue;
189 if (pElement->GetStringFor("Type") != "Font") 189 if (pElement->GetStringFor("Type") != "Font")
190 continue; 190 continue;
191 if (pFont->GetFontDict() == pElement) { 191 if (pFont->GetFontDict() == pElement) {
192 csNameTag = csKey; 192 csNameTag = csKey;
193 return TRUE; 193 return true;
194 } 194 }
195 } 195 }
196 return FALSE; 196 return false;
197 } 197 }
198 198
199 FX_BOOL FindFont(CPDF_Dictionary* pFormDict, 199 bool FindFont(CPDF_Dictionary* pFormDict,
200 CPDF_Document* pDocument, 200 CPDF_Document* pDocument,
201 CFX_ByteString csFontName, 201 CFX_ByteString csFontName,
202 CPDF_Font*& pFont, 202 CPDF_Font*& pFont,
203 CFX_ByteString& csNameTag) { 203 CFX_ByteString& csNameTag) {
204 if (!pFormDict) 204 if (!pFormDict)
205 return FALSE; 205 return false;
206 206
207 CPDF_Dictionary* pDR = pFormDict->GetDictFor("DR"); 207 CPDF_Dictionary* pDR = pFormDict->GetDictFor("DR");
208 if (!pDR) 208 if (!pDR)
209 return FALSE; 209 return false;
210 210
211 CPDF_Dictionary* pFonts = pDR->GetDictFor("Font"); 211 CPDF_Dictionary* pFonts = pDR->GetDictFor("Font");
212 if (!pFonts) 212 if (!pFonts)
213 return FALSE; 213 return false;
214 if (csFontName.GetLength() > 0) 214 if (csFontName.GetLength() > 0)
215 csFontName.Remove(' '); 215 csFontName.Remove(' ');
216 216
217 for (const auto& it : *pFonts) { 217 for (const auto& it : *pFonts) {
218 const CFX_ByteString& csKey = it.first; 218 const CFX_ByteString& csKey = it.first;
219 CPDF_Object* pObj = it.second; 219 CPDF_Object* pObj = it.second;
220 if (!pObj) 220 if (!pObj)
221 continue; 221 continue;
222 222
223 CPDF_Dictionary* pElement = ToDictionary(pObj->GetDirect()); 223 CPDF_Dictionary* pElement = ToDictionary(pObj->GetDirect());
224 if (!pElement) 224 if (!pElement)
225 continue; 225 continue;
226 if (pElement->GetStringFor("Type") != "Font") 226 if (pElement->GetStringFor("Type") != "Font")
227 continue; 227 continue;
228 228
229 pFont = pDocument->LoadFont(pElement); 229 pFont = pDocument->LoadFont(pElement);
230 if (!pFont) 230 if (!pFont)
231 continue; 231 continue;
232 232
233 CFX_ByteString csBaseFont; 233 CFX_ByteString csBaseFont;
234 csBaseFont = pFont->GetBaseFont(); 234 csBaseFont = pFont->GetBaseFont();
235 csBaseFont.Remove(' '); 235 csBaseFont.Remove(' ');
236 if (csBaseFont == csFontName) { 236 if (csBaseFont == csFontName) {
237 csNameTag = csKey; 237 csNameTag = csKey;
238 return TRUE; 238 return true;
239 } 239 }
240 } 240 }
241 return FALSE; 241 return false;
242 } 242 }
243 243
244 void AddFont(CPDF_Dictionary*& pFormDict, 244 void AddFont(CPDF_Dictionary*& pFormDict,
245 CPDF_Document* pDocument, 245 CPDF_Document* pDocument,
246 const CPDF_Font* pFont, 246 const CPDF_Font* pFont,
247 CFX_ByteString& csNameTag) { 247 CFX_ByteString& csNameTag) {
248 if (!pFont) 248 if (!pFont)
249 return; 249 return;
250 if (!pFormDict) 250 if (!pFormDict)
251 InitDict(pFormDict, pDocument); 251 InitDict(pFormDict, pDocument);
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
322 } 322 }
323 323
324 protected: 324 protected:
325 CFX_WideString m_FullName; 325 CFX_WideString m_FullName;
326 const FX_WCHAR* m_pCur; 326 const FX_WCHAR* m_pCur;
327 const FX_WCHAR* m_pEnd; 327 const FX_WCHAR* m_pEnd;
328 }; 328 };
329 329
330 #if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ 330 #if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_
331 typedef struct { 331 typedef struct {
332 FX_BOOL bFind; 332 bool bFind;
333 LOGFONTA lf; 333 LOGFONTA lf;
334 } PDF_FONTDATA; 334 } PDF_FONTDATA;
335 335
336 static int CALLBACK EnumFontFamExProc(ENUMLOGFONTEXA* lpelfe, 336 static int CALLBACK EnumFontFamExProc(ENUMLOGFONTEXA* lpelfe,
337 NEWTEXTMETRICEX* lpntme, 337 NEWTEXTMETRICEX* lpntme,
338 DWORD FontType, 338 DWORD FontType,
339 LPARAM lParam) { 339 LPARAM lParam) {
340 if (FontType != 0x004 || strchr(lpelfe->elfLogFont.lfFaceName, '@')) 340 if (FontType != 0x004 || strchr(lpelfe->elfLogFont.lfFaceName, '@'))
341 return 1; 341 return 1;
342 342
343 PDF_FONTDATA* pData = (PDF_FONTDATA*)lParam; 343 PDF_FONTDATA* pData = (PDF_FONTDATA*)lParam;
344 memcpy(&pData->lf, &lpelfe->elfLogFont, sizeof(LOGFONTA)); 344 memcpy(&pData->lf, &lpelfe->elfLogFont, sizeof(LOGFONTA));
345 pData->bFind = TRUE; 345 pData->bFind = true;
346 return 0; 346 return 0;
347 } 347 }
348 348
349 FX_BOOL RetrieveSpecificFont(LOGFONTA& lf) { 349 bool RetrieveSpecificFont(LOGFONTA& lf) {
350 PDF_FONTDATA fd; 350 PDF_FONTDATA fd;
351 memset(&fd, 0, sizeof(PDF_FONTDATA)); 351 memset(&fd, 0, sizeof(PDF_FONTDATA));
352 HDC hDC = ::GetDC(nullptr); 352 HDC hDC = ::GetDC(nullptr);
353 EnumFontFamiliesExA(hDC, &lf, (FONTENUMPROCA)EnumFontFamExProc, (LPARAM)&fd, 353 EnumFontFamiliesExA(hDC, &lf, (FONTENUMPROCA)EnumFontFamExProc, (LPARAM)&fd,
354 0); 354 0);
355 ::ReleaseDC(nullptr, hDC); 355 ::ReleaseDC(nullptr, hDC);
356 if (fd.bFind) 356 if (fd.bFind)
357 memcpy(&lf, &fd.lf, sizeof(LOGFONTA)); 357 memcpy(&lf, &fd.lf, sizeof(LOGFONTA));
358 358
359 return fd.bFind; 359 return fd.bFind;
360 } 360 }
361 361
362 FX_BOOL RetrieveSpecificFont(uint8_t charSet, 362 bool RetrieveSpecificFont(uint8_t charSet,
363 uint8_t pitchAndFamily, 363 uint8_t pitchAndFamily,
364 LPCSTR pcsFontName, 364 LPCSTR pcsFontName,
365 LOGFONTA& lf) { 365 LOGFONTA& lf) {
366 memset(&lf, 0, sizeof(LOGFONTA)); 366 memset(&lf, 0, sizeof(LOGFONTA));
367 lf.lfCharSet = charSet; 367 lf.lfCharSet = charSet;
368 lf.lfPitchAndFamily = pitchAndFamily; 368 lf.lfPitchAndFamily = pitchAndFamily;
369 if (pcsFontName) { 369 if (pcsFontName) {
370 // TODO(dsinclair): Should this be strncpy? 370 // TODO(dsinclair): Should this be strncpy?
371 strcpy(lf.lfFaceName, pcsFontName); 371 strcpy(lf.lfFaceName, pcsFontName);
372 } 372 }
373 return RetrieveSpecificFont(lf); 373 return RetrieveSpecificFont(lf);
374 } 374 }
375 #endif // _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ 375 #endif // _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_
(...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after
723 } 723 }
724 if (!pResDict) 724 if (!pResDict)
725 return csTmp; 725 return csTmp;
726 726
727 CPDF_Dictionary* pDict = pResDict->GetDictFor(csType); 727 CPDF_Dictionary* pDict = pResDict->GetDictFor(csType);
728 if (!pDict) 728 if (!pDict)
729 return csTmp; 729 return csTmp;
730 730
731 int num = 0; 731 int num = 0;
732 CFX_ByteString bsNum; 732 CFX_ByteString bsNum;
733 while (TRUE) { 733 while (true) {
734 CFX_ByteString csKey = csTmp + bsNum; 734 CFX_ByteString csKey = csTmp + bsNum;
735 if (!pDict->KeyExist(csKey)) 735 if (!pDict->KeyExist(csKey))
736 return csKey; 736 return csKey;
737 if (m < iCount) 737 if (m < iCount)
738 csTmp += csStr[m++]; 738 csTmp += csStr[m++];
739 else 739 else
740 bsNum.Format("%d", num++); 740 bsNum.Format("%d", num++);
741 741
742 m++; 742 m++;
743 } 743 }
(...skipping 13 matching lines...) Expand all
757 } 757 }
758 758
759 CFX_ByteString CPDF_InterForm::GetNativeFont(uint8_t charSet, void* pLogFont) { 759 CFX_ByteString CPDF_InterForm::GetNativeFont(uint8_t charSet, void* pLogFont) {
760 CFX_ByteString csFontName; 760 CFX_ByteString csFontName;
761 #if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ 761 #if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_
762 LOGFONTA lf = {}; 762 LOGFONTA lf = {};
763 if (charSet == FXFONT_ANSI_CHARSET) { 763 if (charSet == FXFONT_ANSI_CHARSET) {
764 csFontName = "Helvetica"; 764 csFontName = "Helvetica";
765 return csFontName; 765 return csFontName;
766 } 766 }
767 FX_BOOL bRet = FALSE; 767 bool bRet = false;
768 if (charSet == FXFONT_SHIFTJIS_CHARSET) { 768 if (charSet == FXFONT_SHIFTJIS_CHARSET) {
769 bRet = RetrieveSpecificFont(charSet, DEFAULT_PITCH | FF_DONTCARE, 769 bRet = RetrieveSpecificFont(charSet, DEFAULT_PITCH | FF_DONTCARE,
770 "MS Mincho", lf); 770 "MS Mincho", lf);
771 } else if (charSet == FXFONT_GB2312_CHARSET) { 771 } else if (charSet == FXFONT_GB2312_CHARSET) {
772 bRet = RetrieveSpecificFont(charSet, DEFAULT_PITCH | FF_DONTCARE, "SimSun", 772 bRet = RetrieveSpecificFont(charSet, DEFAULT_PITCH | FF_DONTCARE, "SimSun",
773 lf); 773 lf);
774 } else if (charSet == FXFONT_CHINESEBIG5_CHARSET) { 774 } else if (charSet == FXFONT_CHINESEBIG5_CHARSET) {
775 bRet = RetrieveSpecificFont(charSet, DEFAULT_PITCH | FF_DONTCARE, "MingLiU", 775 bRet = RetrieveSpecificFont(charSet, DEFAULT_PITCH | FF_DONTCARE, "MingLiU",
776 lf); 776 lf);
777 } 777 }
(...skipping 24 matching lines...) Expand all
802 CPDF_Document* pDocument) { 802 CPDF_Document* pDocument) {
803 if (!pDocument) 803 if (!pDocument)
804 return nullptr; 804 return nullptr;
805 805
806 #if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ 806 #if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_
807 LOGFONTA lf; 807 LOGFONTA lf;
808 CFX_ByteString csFontName = GetNativeFont(charSet, &lf); 808 CFX_ByteString csFontName = GetNativeFont(charSet, &lf);
809 if (!csFontName.IsEmpty()) { 809 if (!csFontName.IsEmpty()) {
810 if (csFontName == "Helvetica") 810 if (csFontName == "Helvetica")
811 return AddStandardFont(pDocument, csFontName); 811 return AddStandardFont(pDocument, csFontName);
812 return pDocument->AddWindowsFont(&lf, FALSE, TRUE); 812 return pDocument->AddWindowsFont(&lf, false, true);
813 } 813 }
814 #endif 814 #endif
815 return nullptr; 815 return nullptr;
816 } 816 }
817 817
818 CPDF_Font* CPDF_InterForm::AddNativeFont(CPDF_Document* pDocument) { 818 CPDF_Font* CPDF_InterForm::AddNativeFont(CPDF_Document* pDocument) {
819 return pDocument ? AddNativeFont(GetNativeCharSet(), pDocument) : nullptr; 819 return pDocument ? AddNativeFont(GetNativeCharSet(), pDocument) : nullptr;
820 } 820 }
821 821
822 bool CPDF_InterForm::ValidateFieldName( 822 bool CPDF_InterForm::ValidateFieldName(
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
933 } 933 }
934 return nullptr; 934 return nullptr;
935 } 935 }
936 936
937 CPDF_FormControl* CPDF_InterForm::GetControlByDict( 937 CPDF_FormControl* CPDF_InterForm::GetControlByDict(
938 const CPDF_Dictionary* pWidgetDict) const { 938 const CPDF_Dictionary* pWidgetDict) const {
939 const auto it = m_ControlMap.find(pWidgetDict); 939 const auto it = m_ControlMap.find(pWidgetDict);
940 return it != m_ControlMap.end() ? it->second : nullptr; 940 return it != m_ControlMap.end() ? it->second : nullptr;
941 } 941 }
942 942
943 FX_BOOL CPDF_InterForm::NeedConstructAP() const { 943 bool CPDF_InterForm::NeedConstructAP() const {
944 return m_pFormDict && m_pFormDict->GetBooleanFor("NeedAppearances"); 944 return m_pFormDict && m_pFormDict->GetBooleanFor("NeedAppearances");
945 } 945 }
946 946
947 int CPDF_InterForm::CountFieldsInCalculationOrder() { 947 int CPDF_InterForm::CountFieldsInCalculationOrder() {
948 if (!m_pFormDict) 948 if (!m_pFormDict)
949 return 0; 949 return 0;
950 950
951 CPDF_Array* pArray = m_pFormDict->GetArrayFor("CO"); 951 CPDF_Array* pArray = m_pFormDict->GetArrayFor("CO");
952 return pArray ? pArray->GetCount() : 0; 952 return pArray ? pArray->GetCount() : 0;
953 } 953 }
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
1054 if (pChildDict) { 1054 if (pChildDict) {
1055 if (pChildDict->GetObjNum() != dwParentObjNum) 1055 if (pChildDict->GetObjNum() != dwParentObjNum)
1056 LoadField(pChildDict, nLevel + 1); 1056 LoadField(pChildDict, nLevel + 1);
1057 } 1057 }
1058 } 1058 }
1059 } else { 1059 } else {
1060 AddTerminalField(pFieldDict); 1060 AddTerminalField(pFieldDict);
1061 } 1061 }
1062 } 1062 }
1063 1063
1064 FX_BOOL CPDF_InterForm::HasXFAForm() const { 1064 bool CPDF_InterForm::HasXFAForm() const {
1065 return m_pFormDict && m_pFormDict->GetArrayFor("XFA"); 1065 return m_pFormDict && m_pFormDict->GetArrayFor("XFA");
1066 } 1066 }
1067 1067
1068 void CPDF_InterForm::FixPageFields(const CPDF_Page* pPage) { 1068 void CPDF_InterForm::FixPageFields(const CPDF_Page* pPage) {
1069 CPDF_Dictionary* pPageDict = pPage->m_pFormDict; 1069 CPDF_Dictionary* pPageDict = pPage->m_pFormDict;
1070 if (!pPageDict) 1070 if (!pPageDict)
1071 return; 1071 return;
1072 1072
1073 CPDF_Array* pAnnots = pPageDict->GetArrayFor("Annots"); 1073 CPDF_Array* pAnnots = pPageDict->GetArrayFor("Annots");
1074 if (!pAnnots) 1074 if (!pAnnots)
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
1234 if (bIncludeOrExclude == pdfium::ContainsValue(fields, pField)) { 1234 if (bIncludeOrExclude == pdfium::ContainsValue(fields, pField)) {
1235 if ((dwFlags & 0x02) != 0 && pField->m_pDict->GetStringFor("V").IsEmpty()) 1235 if ((dwFlags & 0x02) != 0 && pField->m_pDict->GetStringFor("V").IsEmpty())
1236 continue; 1236 continue;
1237 1237
1238 CFX_WideString fullname = FPDF_GetFullName(pField->GetFieldDict()); 1238 CFX_WideString fullname = FPDF_GetFullName(pField->GetFieldDict());
1239 CPDF_Dictionary* pFieldDict = 1239 CPDF_Dictionary* pFieldDict =
1240 new CPDF_Dictionary(pDoc->GetByteStringPool()); 1240 new CPDF_Dictionary(pDoc->GetByteStringPool());
1241 pFieldDict->SetFor("T", new CPDF_String(fullname)); 1241 pFieldDict->SetFor("T", new CPDF_String(fullname));
1242 if (pField->GetType() == CPDF_FormField::CheckBox || 1242 if (pField->GetType() == CPDF_FormField::CheckBox ||
1243 pField->GetType() == CPDF_FormField::RadioButton) { 1243 pField->GetType() == CPDF_FormField::RadioButton) {
1244 CFX_WideString csExport = pField->GetCheckValue(FALSE); 1244 CFX_WideString csExport = pField->GetCheckValue(false);
1245 CFX_ByteString csBExport = PDF_EncodeText(csExport); 1245 CFX_ByteString csBExport = PDF_EncodeText(csExport);
1246 CPDF_Object* pOpt = FPDF_GetFieldAttr(pField->m_pDict, "Opt"); 1246 CPDF_Object* pOpt = FPDF_GetFieldAttr(pField->m_pDict, "Opt");
1247 if (pOpt) 1247 if (pOpt)
1248 pFieldDict->SetStringFor("V", csBExport); 1248 pFieldDict->SetStringFor("V", csBExport);
1249 else 1249 else
1250 pFieldDict->SetNameFor("V", csBExport); 1250 pFieldDict->SetNameFor("V", csBExport);
1251 } else { 1251 } else {
1252 CPDF_Object* pV = FPDF_GetFieldAttr(pField->m_pDict, "V"); 1252 CPDF_Object* pV = FPDF_GetFieldAttr(pField->m_pDict, "V");
1253 if (pV) 1253 if (pV)
1254 pFieldDict->SetFor("V", pV->CloneDirectObject()); 1254 pFieldDict->SetFor("V", pV->CloneDirectObject());
1255 } 1255 }
1256 pFields->Add(pFieldDict); 1256 pFields->Add(pFieldDict);
1257 } 1257 }
1258 } 1258 }
1259 return pDoc; 1259 return pDoc;
1260 } 1260 }
1261 1261
1262 void CPDF_InterForm::FDF_ImportField(CPDF_Dictionary* pFieldDict, 1262 void CPDF_InterForm::FDF_ImportField(CPDF_Dictionary* pFieldDict,
1263 const CFX_WideString& parent_name, 1263 const CFX_WideString& parent_name,
1264 FX_BOOL bNotify, 1264 bool bNotify,
1265 int nLevel) { 1265 int nLevel) {
1266 CFX_WideString name; 1266 CFX_WideString name;
1267 if (!parent_name.IsEmpty()) 1267 if (!parent_name.IsEmpty())
1268 name = parent_name + L"."; 1268 name = parent_name + L".";
1269 1269
1270 name += pFieldDict->GetUnicodeTextFor("T"); 1270 name += pFieldDict->GetUnicodeTextFor("T");
1271 CPDF_Array* pKids = pFieldDict->GetArrayFor("Kids"); 1271 CPDF_Array* pKids = pFieldDict->GetArrayFor("Kids");
1272 if (pKids) { 1272 if (pKids) {
1273 for (size_t i = 0; i < pKids->GetCount(); i++) { 1273 for (size_t i = 0; i < pKids->GetCount(); i++) {
1274 CPDF_Dictionary* pKid = pKids->GetDictAt(i); 1274 CPDF_Dictionary* pKid = pKids->GetDictAt(i);
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1313 else if (iType == FIELDTYPE_LISTBOX) 1313 else if (iType == FIELDTYPE_LISTBOX)
1314 m_pFormNotify->AfterSelectionChange(pField); 1314 m_pFormNotify->AfterSelectionChange(pField);
1315 else if (iType == FIELDTYPE_COMBOBOX || iType == FIELDTYPE_TEXTFIELD) 1315 else if (iType == FIELDTYPE_COMBOBOX || iType == FIELDTYPE_TEXTFIELD)
1316 m_pFormNotify->AfterValueChange(pField); 1316 m_pFormNotify->AfterValueChange(pField);
1317 } 1317 }
1318 } 1318 }
1319 1319
1320 void CPDF_InterForm::SetFormNotify(IPDF_FormNotify* pNotify) { 1320 void CPDF_InterForm::SetFormNotify(IPDF_FormNotify* pNotify) {
1321 m_pFormNotify = pNotify; 1321 m_pFormNotify = pNotify;
1322 } 1322 }
OLDNEW
« no previous file with comments | « core/fpdfdoc/cpdf_interform.h ('k') | core/fpdfdoc/cpdf_metadata.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698