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

Side by Side Diff: xfa/fde/css/fde_cssstyleselector.h

Issue 2072803002: Make code compile with clang_use_chrome_plugin (final) (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: rebase Created 4 years, 6 months 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 | « xfa/fde/css/fde_cssdatatable.cpp ('k') | xfa/fde/css/fde_cssstyleselector.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 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 #ifndef XFA_FDE_CSS_FDE_CSSSTYLESELECTOR_H_ 7 #ifndef XFA_FDE_CSS_FDE_CSSSTYLESELECTOR_H_
8 #define XFA_FDE_CSS_FDE_CSSSTYLESELECTOR_H_ 8 #define XFA_FDE_CSS_FDE_CSSSTYLESELECTOR_H_
9 9
10 #include <vector> 10 #include <vector>
(...skipping 16 matching lines...) Expand all
27 uint32_t dwPos); 27 uint32_t dwPos);
28 28
29 CFDE_CSSSelector* pSelector; 29 CFDE_CSSSelector* pSelector;
30 CFDE_CSSDeclaration* pDeclaration; 30 CFDE_CSSDeclaration* pDeclaration;
31 uint32_t dwPriority; 31 uint32_t dwPriority;
32 FDE_CSSRuleData* pNext; 32 FDE_CSSRuleData* pNext;
33 }; 33 };
34 34
35 class CFDE_CSSRuleCollection : public CFX_Target { 35 class CFDE_CSSRuleCollection : public CFX_Target {
36 public: 36 public:
37 CFDE_CSSRuleCollection() 37 CFDE_CSSRuleCollection();
38 : m_pStaticStore(nullptr), 38 ~CFDE_CSSRuleCollection() override;
39 m_pUniversalRules(nullptr),
40 m_pPersudoRules(nullptr),
41 m_iSelectors(0) {}
42 ~CFDE_CSSRuleCollection() { Clear(); }
43 39
44 void AddRulesFrom(const CFDE_CSSStyleSheetArray& sheets, 40 void AddRulesFrom(const CFDE_CSSStyleSheetArray& sheets,
45 uint32_t dwMediaList, 41 uint32_t dwMediaList,
46 IFGAS_FontMgr* pFontMgr); 42 IFGAS_FontMgr* pFontMgr);
47 void Clear(); 43 void Clear();
48 44
49 int32_t CountSelectors() const { return m_iSelectors; } 45 int32_t CountSelectors() const { return m_iSelectors; }
50 FDE_CSSRuleData* GetIDRuleData(uint32_t dwIDHash) { 46 FDE_CSSRuleData* GetIDRuleData(uint32_t dwIDHash) {
51 void* pData; 47 void* pData;
52 return m_IDRules.Lookup((void*)(uintptr_t)dwIDHash, pData) 48 return m_IDRules.Lookup((void*)(uintptr_t)dwIDHash, pData)
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 200
205 const FX_WCHAR* m_pszIdent; 201 const FX_WCHAR* m_pszIdent;
206 FX_BOOL m_bIncrement; 202 FX_BOOL m_bIncrement;
207 FX_BOOL m_bReset; 203 FX_BOOL m_bReset;
208 int32_t m_iIncVal; 204 int32_t m_iIncVal;
209 int32_t m_iResetVal; 205 int32_t m_iResetVal;
210 }; 206 };
211 207
212 class CFDE_CSSCounterStyle { 208 class CFDE_CSSCounterStyle {
213 public: 209 public:
214 CFDE_CSSCounterStyle() : m_pCounterInc(nullptr), m_pCounterReset(nullptr) {} 210 CFDE_CSSCounterStyle();
211 ~CFDE_CSSCounterStyle();
215 212
216 void SetCounterIncrementList(IFDE_CSSValueList* pList) { 213 void SetCounterIncrementList(IFDE_CSSValueList* pList) {
217 m_pCounterInc = pList; 214 m_pCounterInc = pList;
218 m_bIndexDirty = TRUE; 215 m_bIndexDirty = TRUE;
219 } 216 }
220
221 void SetCounterResetList(IFDE_CSSValueList* pList) { 217 void SetCounterResetList(IFDE_CSSValueList* pList) {
222 m_pCounterReset = pList; 218 m_pCounterReset = pList;
223 m_bIndexDirty = TRUE; 219 m_bIndexDirty = TRUE;
224 } 220 }
225
226 int32_t CountCounters() { 221 int32_t CountCounters() {
227 UpdateIndex(); 222 UpdateIndex();
228 return m_arrCounterData.GetSize(); 223 return m_arrCounterData.GetSize();
229 } 224 }
230
231 FX_BOOL GetCounterIncrement(int32_t index, int32_t& iValue) { 225 FX_BOOL GetCounterIncrement(int32_t index, int32_t& iValue) {
232 UpdateIndex(); 226 UpdateIndex();
233 return m_arrCounterData.ElementAt(index).GetCounterIncrement(iValue); 227 return m_arrCounterData.ElementAt(index).GetCounterIncrement(iValue);
234 } 228 }
235
236 FX_BOOL GetCounterReset(int32_t index, int32_t& iValue) { 229 FX_BOOL GetCounterReset(int32_t index, int32_t& iValue) {
237 UpdateIndex(); 230 UpdateIndex();
238 return m_arrCounterData.ElementAt(index).GetCounterReset(iValue); 231 return m_arrCounterData.ElementAt(index).GetCounterReset(iValue);
239 } 232 }
240
241 const FX_WCHAR* GetCounterIdentifier(int32_t index) { 233 const FX_WCHAR* GetCounterIdentifier(int32_t index) {
242 UpdateIndex(); 234 UpdateIndex();
243 return m_arrCounterData.ElementAt(index).m_pszIdent; 235 return m_arrCounterData.ElementAt(index).m_pszIdent;
244 } 236 }
245 237
246 protected: 238 protected:
247 void UpdateIndex(); 239 void UpdateIndex();
248 void DoUpdateIndex(IFDE_CSSValueList* pList); 240 void DoUpdateIndex(IFDE_CSSValueList* pList);
249 int32_t FindIndex(const FX_WCHAR* pszIdentifier); 241 int32_t FindIndex(const FX_WCHAR* pszIdentifier);
250 242
251 IFDE_CSSValueList* m_pCounterInc; 243 IFDE_CSSValueList* m_pCounterInc;
252 IFDE_CSSValueList* m_pCounterReset; 244 IFDE_CSSValueList* m_pCounterReset;
253 CFX_ArrayTemplate<FDE_CSSCOUNTERDATA> m_arrCounterData; 245 CFX_ArrayTemplate<FDE_CSSCOUNTERDATA> m_arrCounterData;
254 FX_BOOL m_bIndexDirty; 246 FX_BOOL m_bIndexDirty;
255 }; 247 };
256 248
257 class CFDE_CSSInheritedData { 249 class CFDE_CSSInheritedData {
258 public: 250 public:
259 void Reset() { 251 CFDE_CSSInheritedData();
260 FXSYS_memset(this, 0, sizeof(CFDE_CSSInheritedData)); 252
261 m_LetterSpacing.Set(FDE_CSSLENGTHUNIT_Normal); 253 void Reset();
262 m_WordSpacing.Set(FDE_CSSLENGTHUNIT_Normal);
263 m_TextIndent.Set(FDE_CSSLENGTHUNIT_Point, 0);
264 m_fFontSize = 12.0f;
265 m_fLineHeight = 14.0f;
266 m_wFontWeight = 400;
267 m_dwFontColor = 0xFF000000;
268 m_iWidows = 2;
269 m_bTextEmphasisColorCurrent = TRUE;
270 m_iOrphans = 2;
271 }
272 254
273 const FX_WCHAR* m_pszListStyleImage; 255 const FX_WCHAR* m_pszListStyleImage;
274 FDE_CSSLENGTH m_LetterSpacing; 256 FDE_CSSLENGTH m_LetterSpacing;
275 FDE_CSSLENGTH m_WordSpacing; 257 FDE_CSSLENGTH m_WordSpacing;
276 FDE_CSSLENGTH m_TextIndent; 258 FDE_CSSLENGTH m_TextIndent;
277 IFDE_CSSValueList* m_pFontFamily; 259 IFDE_CSSValueList* m_pFontFamily;
278 IFDE_CSSValueList* m_pQuotes; 260 IFDE_CSSValueList* m_pQuotes;
279 IFDE_CSSValueList* m_pCursorUris; 261 IFDE_CSSValueList* m_pCursorUris;
280 FDE_CSSCURSOR m_eCursor; 262 FDE_CSSCURSOR m_eCursor;
281 FX_FLOAT m_fFontSize; 263 FX_FLOAT m_fFontSize;
(...skipping 17 matching lines...) Expand all
299 uint32_t m_eTextEmphasisFill : 1; 281 uint32_t m_eTextEmphasisFill : 1;
300 uint32_t m_eTextEmphasisMark : 3; 282 uint32_t m_eTextEmphasisMark : 3;
301 uint32_t m_eCaptionSide : 3; 283 uint32_t m_eCaptionSide : 3;
302 uint8_t m_eRubyAlign : 4; 284 uint8_t m_eRubyAlign : 4;
303 uint8_t m_eRubyOverhang : 2; 285 uint8_t m_eRubyOverhang : 2;
304 uint8_t m_eRubyPosition : 2; 286 uint8_t m_eRubyPosition : 2;
305 }; 287 };
306 288
307 class CFDE_CSSNonInheritedData { 289 class CFDE_CSSNonInheritedData {
308 public: 290 public:
309 void Reset() { 291 CFDE_CSSNonInheritedData();
310 FXSYS_memset(this, 0, sizeof(CFDE_CSSNonInheritedData)); 292
311 m_MarginWidth = m_BorderWidth = 293 void Reset();
312 m_PaddingWidth.Set(FDE_CSSLENGTHUNIT_Point, 0);
313 m_MinBoxSize.Set(FDE_CSSLENGTHUNIT_Point, 0);
314 m_MaxBoxSize.Set(FDE_CSSLENGTHUNIT_None);
315 m_eDisplay = FDE_CSSDISPLAY_Inline;
316 m_fVerticalAlign = 0.0f;
317 m_ColumnCount.Set(FDE_CSSLENGTHUNIT_Auto);
318 m_ColumnGap.Set(FDE_CSSLENGTHUNIT_Normal);
319 m_bColumnRuleColorSame = TRUE;
320 m_ColumnWidth.Set(FDE_CSSLENGTHUNIT_Auto);
321 m_ColumnRuleWidth.Set(FDE_CSSLENGTHUNIT_Auto);
322 m_eTextCombine = FDE_CSSTEXTCOMBINE_None;
323 }
324 294
325 IFDE_CSSValueList* m_pContentList; 295 IFDE_CSSValueList* m_pContentList;
326 CFDE_CSSCounterStyle* m_pCounterStyle; 296 CFDE_CSSCounterStyle* m_pCounterStyle;
327 FDE_CSSRECT m_MarginWidth; 297 FDE_CSSRECT m_MarginWidth;
328 FDE_CSSRECT m_BorderWidth; 298 FDE_CSSRECT m_BorderWidth;
329 FDE_CSSRECT m_PaddingWidth; 299 FDE_CSSRECT m_PaddingWidth;
330 FDE_CSSSIZE m_BoxSize; 300 FDE_CSSSIZE m_BoxSize;
331 FDE_CSSSIZE m_MinBoxSize; 301 FDE_CSSSIZE m_MinBoxSize;
332 FDE_CSSSIZE m_MaxBoxSize; 302 FDE_CSSSIZE m_MaxBoxSize;
333 FDE_CSSPOINT m_BKGPosition; 303 FDE_CSSPOINT m_BKGPosition;
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
378 uint32_t m_bHasTextCombineNumber : 1; 348 uint32_t m_bHasTextCombineNumber : 1;
379 }; 349 };
380 350
381 class CFDE_CSSComputedStyle : public IFDE_CSSComputedStyle, 351 class CFDE_CSSComputedStyle : public IFDE_CSSComputedStyle,
382 public IFDE_CSSBoundaryStyle, 352 public IFDE_CSSBoundaryStyle,
383 public IFDE_CSSFontStyle, 353 public IFDE_CSSFontStyle,
384 public IFDE_CSSPositionStyle, 354 public IFDE_CSSPositionStyle,
385 public IFDE_CSSParagraphStyle, 355 public IFDE_CSSParagraphStyle,
386 public CFX_Target { 356 public CFX_Target {
387 public: 357 public:
388 CFDE_CSSComputedStyle(IFX_MemoryAllocator* pAlloc) 358 CFDE_CSSComputedStyle(IFX_MemoryAllocator* pAlloc);
389 : m_dwRefCount(1), m_pAllocator(pAlloc) {} 359 ~CFDE_CSSComputedStyle() override;
390 360
391 ~CFDE_CSSComputedStyle() override {} 361 // IFX_Retainable
362 uint32_t Retain() override;
363 uint32_t Release() override;
392 364
393 // IFX_Retainable: 365 // IFDE_CSSComputedStyle
394 uint32_t Retain() override { return ++m_dwRefCount; } 366 void Reset() override;
395 uint32_t Release() override { 367 IFDE_CSSFontStyle* GetFontStyles() override;
396 uint32_t dwRefCount = --m_dwRefCount; 368 IFDE_CSSBoundaryStyle* GetBoundaryStyles() override;
397 if (dwRefCount == 0) { 369 IFDE_CSSPositionStyle* GetPositionStyles() override;
398 delete m_NonInheritedData.m_pCounterStyle; 370 IFDE_CSSParagraphStyle* GetParagraphStyles() override;
399 FXTARGET_DeleteWith(CFDE_CSSComputedStyle, m_pAllocator, this);
400 }
401 return dwRefCount;
402 }
403
404 // IFDE_CSSComputedStyle:
405 void Reset() override {
406 m_InheritedData.Reset();
407 m_NonInheritedData.Reset();
408 }
409
410 IFDE_CSSFontStyle* GetFontStyles() override {
411 return static_cast<IFDE_CSSFontStyle*>(this);
412 }
413
414 IFDE_CSSBoundaryStyle* GetBoundaryStyles() override {
415 return static_cast<IFDE_CSSBoundaryStyle*>(this);
416 }
417
418 IFDE_CSSPositionStyle* GetPositionStyles() override {
419 return static_cast<IFDE_CSSPositionStyle*>(this);
420 }
421
422 IFDE_CSSParagraphStyle* GetParagraphStyles() override {
423 return static_cast<IFDE_CSSParagraphStyle*>(this);
424 }
425
426 FX_BOOL GetCustomStyle(const CFX_WideStringC& wsName, 371 FX_BOOL GetCustomStyle(const CFX_WideStringC& wsName,
427 CFX_WideString& wsValue) const override { 372 CFX_WideString& wsValue) const override;
428 for (int32_t i = m_CustomProperties.GetSize() - 2; i > -1; i -= 2) {
429 if (wsName == m_CustomProperties[i]) {
430 wsValue = m_CustomProperties[i + 1];
431 return TRUE;
432 }
433 }
434 return FALSE;
435 }
436 373
437 // IFDE_CSSFontStyle: 374 // IFDE_CSSFontStyle:
438 int32_t CountFontFamilies() const override { 375 int32_t CountFontFamilies() const override;
439 return m_InheritedData.m_pFontFamily 376 const FX_WCHAR* GetFontFamily(int32_t index) const override;
440 ? m_InheritedData.m_pFontFamily->CountValues() 377 uint16_t GetFontWeight() const override;
441 : 0; 378 FDE_CSSFONTVARIANT GetFontVariant() const override;
442 } 379 FDE_CSSFONTSTYLE GetFontStyle() const override;
443 380 FX_FLOAT GetFontSize() const override;
444 const FX_WCHAR* GetFontFamily(int32_t index) const override { 381 FX_ARGB GetColor() const override;
445 return (static_cast<IFDE_CSSPrimitiveValue*>( 382 void SetFontWeight(uint16_t wFontWeight) override;
446 m_InheritedData.m_pFontFamily->GetValue(index))) 383 void SetFontVariant(FDE_CSSFONTVARIANT eFontVariant) override;
447 ->GetString(index); 384 void SetFontStyle(FDE_CSSFONTSTYLE eFontStyle) override;
448 } 385 void SetFontSize(FX_FLOAT fFontSize) override;
449 386 void SetColor(FX_ARGB dwFontColor) override;
450 uint16_t GetFontWeight() const override {
451 return m_InheritedData.m_wFontWeight;
452 }
453
454 FDE_CSSFONTVARIANT GetFontVariant() const override {
455 return static_cast<FDE_CSSFONTVARIANT>(m_InheritedData.m_eFontVariant);
456 }
457
458 FDE_CSSFONTSTYLE GetFontStyle() const override {
459 return static_cast<FDE_CSSFONTSTYLE>(m_InheritedData.m_eFontStyle);
460 }
461
462 FX_FLOAT GetFontSize() const override { return m_InheritedData.m_fFontSize; }
463
464 FX_ARGB GetColor() const override { return m_InheritedData.m_dwFontColor; }
465
466 void SetFontWeight(uint16_t wFontWeight) override {
467 m_InheritedData.m_wFontWeight = wFontWeight;
468 }
469
470 void SetFontVariant(FDE_CSSFONTVARIANT eFontVariant) override {
471 m_InheritedData.m_eFontVariant = eFontVariant;
472 }
473
474 void SetFontStyle(FDE_CSSFONTSTYLE eFontStyle) override {
475 m_InheritedData.m_eFontStyle = eFontStyle;
476 }
477
478 void SetFontSize(FX_FLOAT fFontSize) override {
479 m_InheritedData.m_fFontSize = fFontSize;
480 }
481
482 void SetColor(FX_ARGB dwFontColor) override {
483 m_InheritedData.m_dwFontColor = dwFontColor;
484 }
485 387
486 // IFDE_CSSBoundaryStyle: 388 // IFDE_CSSBoundaryStyle:
487 const FDE_CSSRECT* GetBorderWidth() const override { 389 const FDE_CSSRECT* GetBorderWidth() const override;
488 return m_NonInheritedData.m_bHasBorder ? &(m_NonInheritedData.m_BorderWidth) 390 const FDE_CSSRECT* GetMarginWidth() const override;
489 : nullptr; 391 const FDE_CSSRECT* GetPaddingWidth() const override;
490 } 392 void SetMarginWidth(const FDE_CSSRECT& rect) override;
491 393 void SetPaddingWidth(const FDE_CSSRECT& rect) override;
492 const FDE_CSSRECT* GetMarginWidth() const override {
493 return m_NonInheritedData.m_bHasMargin ? &(m_NonInheritedData.m_MarginWidth)
494 : nullptr;
495 }
496
497 const FDE_CSSRECT* GetPaddingWidth() const override {
498 return m_NonInheritedData.m_bHasPadding
499 ? &(m_NonInheritedData.m_PaddingWidth)
500 : nullptr;
501 }
502
503 void SetMarginWidth(const FDE_CSSRECT& rect) override {
504 m_NonInheritedData.m_MarginWidth = rect;
505 m_NonInheritedData.m_bHasMargin = TRUE;
506 }
507
508 void SetPaddingWidth(const FDE_CSSRECT& rect) override {
509 m_NonInheritedData.m_PaddingWidth = rect;
510 m_NonInheritedData.m_bHasPadding = TRUE;
511 }
512 394
513 // IFDE_CSSPositionStyle: 395 // IFDE_CSSPositionStyle:
514 FDE_CSSDISPLAY GetDisplay() const override { 396 FDE_CSSDISPLAY GetDisplay() const override;
515 return static_cast<FDE_CSSDISPLAY>(m_NonInheritedData.m_eDisplay);
516 }
517 397
518 // IFDE_CSSParagraphStyle: 398 // IFDE_CSSParagraphStyle:
519 FX_FLOAT GetLineHeight() const override { 399 FX_FLOAT GetLineHeight() const override;
520 return m_InheritedData.m_fLineHeight; 400 const FDE_CSSLENGTH& GetTextIndent() const override;
521 } 401 FDE_CSSTEXTALIGN GetTextAlign() const override;
522 402 FDE_CSSVERTICALALIGN GetVerticalAlign() const override;
523 const FDE_CSSLENGTH& GetTextIndent() const override { 403 FX_FLOAT GetNumberVerticalAlign() const override;
524 return m_InheritedData.m_TextIndent; 404 uint32_t GetTextDecoration() const override;
525 } 405 const FDE_CSSLENGTH& GetLetterSpacing() const override;
526 406 void SetLineHeight(FX_FLOAT fLineHeight) override;
527 FDE_CSSTEXTALIGN GetTextAlign() const override { 407 void SetTextIndent(const FDE_CSSLENGTH& textIndent) override;
528 return static_cast<FDE_CSSTEXTALIGN>(m_InheritedData.m_eTextAligh); 408 void SetTextAlign(FDE_CSSTEXTALIGN eTextAlign) override;
529 } 409 void SetNumberVerticalAlign(FX_FLOAT fAlign) override;
530 410 void SetTextDecoration(uint32_t dwTextDecoration) override;
531 FDE_CSSVERTICALALIGN GetVerticalAlign() const override { 411 void SetLetterSpacing(const FDE_CSSLENGTH& letterSpacing) override;
532 return static_cast<FDE_CSSVERTICALALIGN>(
533 m_NonInheritedData.m_eVerticalAlign);
534 }
535
536 FX_FLOAT GetNumberVerticalAlign() const override {
537 return m_NonInheritedData.m_fVerticalAlign;
538 }
539
540 uint32_t GetTextDecoration() const override {
541 return m_NonInheritedData.m_dwTextDecoration;
542 }
543
544 const FDE_CSSLENGTH& GetLetterSpacing() const override {
545 return m_InheritedData.m_LetterSpacing;
546 }
547
548 void SetLineHeight(FX_FLOAT fLineHeight) override {
549 m_InheritedData.m_fLineHeight = fLineHeight;
550 }
551
552 void SetTextIndent(const FDE_CSSLENGTH& textIndent) override {
553 m_InheritedData.m_TextIndent = textIndent;
554 }
555
556 void SetTextAlign(FDE_CSSTEXTALIGN eTextAlign) override {
557 m_InheritedData.m_eTextAligh = eTextAlign;
558 }
559
560 void SetNumberVerticalAlign(FX_FLOAT fAlign) override {
561 m_NonInheritedData.m_eVerticalAlign = FDE_CSSVERTICALALIGN_Number,
562 m_NonInheritedData.m_fVerticalAlign = fAlign;
563 }
564
565 void SetTextDecoration(uint32_t dwTextDecoration) override {
566 m_NonInheritedData.m_dwTextDecoration = dwTextDecoration;
567 }
568
569 void SetLetterSpacing(const FDE_CSSLENGTH& letterSpacing) override {
570 m_InheritedData.m_LetterSpacing = letterSpacing;
571 }
572
573 void AddCustomStyle(const CFX_WideString& wsName, 412 void AddCustomStyle(const CFX_WideString& wsName,
574 const CFX_WideString& wsValue) { 413 const CFX_WideString& wsValue);
575 m_CustomProperties.Add(wsName);
576 m_CustomProperties.Add(wsValue);
577 }
578 414
579 uint32_t m_dwRefCount; 415 uint32_t m_dwRefCount;
580 IFX_MemoryAllocator* m_pAllocator; 416 IFX_MemoryAllocator* m_pAllocator;
581 CFDE_CSSInheritedData m_InheritedData; 417 CFDE_CSSInheritedData m_InheritedData;
582 CFDE_CSSNonInheritedData m_NonInheritedData; 418 CFDE_CSSNonInheritedData m_NonInheritedData;
583 CFX_WideStringArray m_CustomProperties; 419 CFX_WideStringArray m_CustomProperties;
584 }; 420 };
585 421
586 #endif // XFA_FDE_CSS_FDE_CSSSTYLESELECTOR_H_ 422 #endif // XFA_FDE_CSS_FDE_CSSSTYLESELECTOR_H_
OLDNEW
« no previous file with comments | « xfa/fde/css/fde_cssdatatable.cpp ('k') | xfa/fde/css/fde_cssstyleselector.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698