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

Side by Side Diff: third_party/WebKit/Source/core/style/ComputedStyle.h

Issue 2904453002: Use LayoutUnit for all border-*-width logic (Closed)
Patch Set: shend@ suggestions Created 3 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org)
3 * (C) 2000 Antti Koivisto (koivisto@kde.org) 3 * (C) 2000 Antti Koivisto (koivisto@kde.org)
4 * (C) 2000 Dirk Mueller (mueller@kde.org) 4 * (C) 2000 Dirk Mueller (mueller@kde.org)
5 * Copyright (C) 2003, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All 5 * Copyright (C) 2003, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All
6 * rights reserved. 6 * rights reserved.
7 * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com) 7 * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com)
8 * 8 *
9 * This library is free software; you can redistribute it and/or 9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Library General Public 10 * modify it under the terms of the GNU Library General Public
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 void SetStyleType(PseudoId style_type) { SetStyleTypeInternal(style_type); } 246 void SetStyleType(PseudoId style_type) { SetStyleTypeInternal(style_type); }
247 247
248 ComputedStyle* GetCachedPseudoStyle(PseudoId) const; 248 ComputedStyle* GetCachedPseudoStyle(PseudoId) const;
249 ComputedStyle* AddCachedPseudoStyle(RefPtr<ComputedStyle>); 249 ComputedStyle* AddCachedPseudoStyle(RefPtr<ComputedStyle>);
250 void RemoveCachedPseudoStyle(PseudoId); 250 void RemoveCachedPseudoStyle(PseudoId);
251 251
252 const PseudoStyleCache* CachedPseudoStyles() const { 252 const PseudoStyleCache* CachedPseudoStyles() const {
253 return cached_pseudo_styles_.get(); 253 return cached_pseudo_styles_.get();
254 } 254 }
255 255
256 bool BorderWidthEquals(float border_width_first,
257 float border_width_second) const {
258 return WidthToFixedPoint(border_width_first) ==
259 WidthToFixedPoint(border_width_second);
260 }
261
262 /** 256 /**
263 * ComputedStyle properties 257 * ComputedStyle properties
264 * 258 *
265 * Each property stored in ComputedStyle is made up of fields. Fields have 259 * Each property stored in ComputedStyle is made up of fields. Fields have
266 * initial value functions, getters and setters. A field is preferably a 260 * initial value functions, getters and setters. A field is preferably a
267 * basic data type or enum, but can be any type. A set of fields should be 261 * basic data type or enum, but can be any type. A set of fields should be
268 * preceded by the property the field is stored for. 262 * preceded by the property the field is stored for.
269 * 263 *
270 * Field method naming should be done like so: 264 * Field method naming should be done like so:
271 * // name-of-property 265 * // name-of-property
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
451 445
452 // Border width properties. 446 // Border width properties.
453 static float InitialBorderWidth() { return 3; } 447 static float InitialBorderWidth() { return 3; }
454 448
455 // TODO(nainar): Move all fixed point logic to a separate class. 449 // TODO(nainar): Move all fixed point logic to a separate class.
456 // border-top-width 450 // border-top-width
457 float BorderTopWidth() const { 451 float BorderTopWidth() const {
458 if (BorderTopStyle() == EBorderStyle::kNone || 452 if (BorderTopStyle() == EBorderStyle::kNone ||
459 BorderTopStyle() == EBorderStyle::kHidden) 453 BorderTopStyle() == EBorderStyle::kHidden)
460 return 0; 454 return 0;
461 return static_cast<float>(BorderTopWidthInternal()) / 455 return BorderTopWidthInternal().Width();
462 kBorderWidthDenominator;
463 } 456 }
464 void SetBorderTopWidth(float v) { 457 void SetBorderTopWidth(float v) {
465 SetBorderTopWidthInternal(WidthToFixedPoint(v)); 458 MutableBorderTopWidthInternal().SetWidth(v);
466 } 459 }
467 bool BorderTopNonZero() const { 460 bool BorderTopNonZero() const {
468 return BorderTopWidth() && (BorderTopStyle() != EBorderStyle::kNone); 461 return BorderTopWidth() && (BorderTopStyle() != EBorderStyle::kNone);
469 } 462 }
470 463
471 // border-bottom-width 464 // border-bottom-width
472 float BorderBottomWidth() const { 465 float BorderBottomWidth() const {
473 if (BorderBottomStyle() == EBorderStyle::kNone || 466 if (BorderBottomStyle() == EBorderStyle::kNone ||
474 BorderBottomStyle() == EBorderStyle::kHidden) 467 BorderBottomStyle() == EBorderStyle::kHidden)
475 return 0; 468 return 0;
476 return static_cast<float>(BorderBottomWidthInternal()) / 469 return BorderBottomWidthInternal().Width();
477 kBorderWidthDenominator;
478 } 470 }
479 void SetBorderBottomWidth(float v) { 471 void SetBorderBottomWidth(float v) {
480 SetBorderBottomWidthInternal(WidthToFixedPoint(v)); 472 MutableBorderBottomWidthInternal().SetWidth(v);
481 } 473 }
482 bool BorderBottomNonZero() const { 474 bool BorderBottomNonZero() const {
483 return BorderBottomWidth() && (BorderBottomStyle() != EBorderStyle::kNone); 475 return BorderBottomWidth() && (BorderBottomStyle() != EBorderStyle::kNone);
484 } 476 }
485 477
486 // border-left-width 478 // border-left-width
487 float BorderLeftWidth() const { 479 float BorderLeftWidth() const {
488 if (BorderLeftStyle() == EBorderStyle::kNone || 480 if (BorderLeftStyle() == EBorderStyle::kNone ||
489 BorderLeftStyle() == EBorderStyle::kHidden) 481 BorderLeftStyle() == EBorderStyle::kHidden)
490 return 0; 482 return 0;
491 return static_cast<float>(BorderLeftWidthInternal()) / 483 return BorderLeftWidthInternal().Width();
492 kBorderWidthDenominator;
493 } 484 }
494 void SetBorderLeftWidth(float v) { 485 void SetBorderLeftWidth(float v) {
495 SetBorderLeftWidthInternal(WidthToFixedPoint(v)); 486 MutableBorderLeftWidthInternal().SetWidth(v);
496 } 487 }
497 bool BorderLeftNonZero() const { 488 bool BorderLeftNonZero() const {
498 return BorderLeftWidth() && (BorderLeftStyle() != EBorderStyle::kNone); 489 return BorderLeftWidth() && (BorderLeftStyle() != EBorderStyle::kNone);
499 } 490 }
500 491
501 // border-right-width 492 // border-right-width
502 float BorderRightWidth() const { 493 float BorderRightWidth() const {
503 if (BorderRightStyle() == EBorderStyle::kNone || 494 if (BorderRightStyle() == EBorderStyle::kNone ||
504 BorderRightStyle() == EBorderStyle::kHidden) 495 BorderRightStyle() == EBorderStyle::kHidden)
505 return 0; 496 return 0;
506 return static_cast<float>(BorderRightWidthInternal()) / 497 return BorderRightWidthInternal().Width();
507 kBorderWidthDenominator;
508 } 498 }
509 void SetBorderRightWidth(float v) { 499 void SetBorderRightWidth(float v) {
510 SetBorderRightWidthInternal(WidthToFixedPoint(v)); 500 MutableBorderRightWidthInternal().SetWidth(v);
511 } 501 }
512 bool BorderRightNonZero() const { 502 bool BorderRightNonZero() const {
513 return BorderRightWidth() && (BorderRightStyle() != EBorderStyle::kNone); 503 return BorderRightWidth() && (BorderRightStyle() != EBorderStyle::kNone);
514 } 504 }
515 505
516 static EBorderStyle InitialColumnRuleStyle() { return EBorderStyle::kNone; } 506 static EBorderStyle InitialColumnRuleStyle() { return EBorderStyle::kNone; }
517 507
518 // Border color properties. 508 // Border color properties.
519 // border-left-color 509 // border-left-color
520 void SetBorderLeftColor(const StyleColor& color) { 510 void SetBorderLeftColor(const StyleColor& color) {
(...skipping 2251 matching lines...) Expand 10 before | Expand all | Expand 10 after
2772 bool HasBorderImageOutsets() const { 2762 bool HasBorderImageOutsets() const {
2773 return BorderImage().HasImage() && BorderImage().Outset().NonZero(); 2763 return BorderImage().HasImage() && BorderImage().Outset().NonZero();
2774 } 2764 }
2775 LayoutRectOutsets BorderImageOutsets() const { 2765 LayoutRectOutsets BorderImageOutsets() const {
2776 return ImageOutsets(BorderImage()); 2766 return ImageOutsets(BorderImage());
2777 } 2767 }
2778 bool BorderImageSlicesFill() const { return BorderImage().Fill(); } 2768 bool BorderImageSlicesFill() const { return BorderImage().Fill(); }
2779 2769
2780 void SetBorderImageSlicesFill(bool); 2770 void SetBorderImageSlicesFill(bool);
2781 const BorderValue BorderLeft() const { 2771 const BorderValue BorderLeft() const {
2782 return BorderValue( 2772 return BorderValue(BorderLeftStyle(), BorderLeftColor(),
2783 BorderLeftStyle(), BorderLeftColor(), 2773 BorderLeftWidthInternal().Width(), OutlineStyleIsAuto());
2784 static_cast<float>(BorderLeftWidthInternal()) / kBorderWidthDenominator,
2785 OutlineStyleIsAuto());
2786 } 2774 }
2787 const BorderValue BorderRight() const { 2775 const BorderValue BorderRight() const {
2788 return BorderValue(BorderRightStyle(), BorderRightColor(), 2776 return BorderValue(BorderRightStyle(), BorderRightColor(),
2789 static_cast<float>(BorderRightWidthInternal()) / 2777 BorderRightWidthInternal().Width(),
2790 kBorderWidthDenominator,
2791 OutlineStyleIsAuto()); 2778 OutlineStyleIsAuto());
2792 } 2779 }
2793 const BorderValue BorderTop() const { 2780 const BorderValue BorderTop() const {
2794 return BorderValue( 2781 return BorderValue(BorderTopStyle(), BorderTopColor(),
2795 BorderTopStyle(), BorderTopColor(), 2782 BorderTopWidthInternal().Width(), OutlineStyleIsAuto());
2796 static_cast<float>(BorderTopWidthInternal()) / kBorderWidthDenominator,
2797 OutlineStyleIsAuto());
2798 } 2783 }
2799 const BorderValue BorderBottom() const { 2784 const BorderValue BorderBottom() const {
2800 return BorderValue(BorderBottomStyle(), BorderBottomColor(), 2785 return BorderValue(BorderBottomStyle(), BorderBottomColor(),
2801 static_cast<float>(BorderBottomWidthInternal()) / 2786 BorderBottomWidthInternal().Width(),
2802 kBorderWidthDenominator,
2803 OutlineStyleIsAuto()); 2787 OutlineStyleIsAuto());
2804 } 2788 }
2805 2789
2806 bool BorderSizeEquals(const ComputedStyle& o) const { 2790 bool BorderSizeEquals(const ComputedStyle& o) const {
2807 return BorderWidthEquals(BorderLeftWidth(), o.BorderLeftWidth()) && 2791 return BorderLeftWidthInternal().WidthEquals(
2808 BorderWidthEquals(BorderTopWidth(), o.BorderTopWidth()) && 2792 o.BorderLeftWidthInternal().Width()) &&
2809 BorderWidthEquals(BorderRightWidth(), o.BorderRightWidth()) && 2793 BorderTopWidthInternal().WidthEquals(
2810 BorderWidthEquals(BorderBottomWidth(), o.BorderBottomWidth()); 2794 o.BorderTopWidthInternal().Width()) &&
2795 BorderRightWidthInternal().WidthEquals(
2796 o.BorderRightWidthInternal().Width()) &&
2797 BorderBottomWidthInternal().WidthEquals(
2798 o.BorderBottomWidthInternal().Width());
2811 } 2799 }
2812 2800
2813 BorderValue BorderBefore() const; 2801 BorderValue BorderBefore() const;
2814 BorderValue BorderAfter() const; 2802 BorderValue BorderAfter() const;
2815 BorderValue BorderStart() const; 2803 BorderValue BorderStart() const;
2816 BorderValue BorderEnd() const; 2804 BorderValue BorderEnd() const;
2817 float BorderAfterWidth() const; 2805 float BorderAfterWidth() const;
2818 float BorderBeforeWidth() const; 2806 float BorderBeforeWidth() const;
2819 float BorderEndWidth() const; 2807 float BorderEndWidth() const;
2820 float BorderStartWidth() const; 2808 float BorderStartWidth() const;
(...skipping 953 matching lines...) Expand 10 before | Expand all | Expand 10 after
3774 PseudoBitsInternal() | 1 << (pseudo - kFirstPublicPseudoId))); 3762 PseudoBitsInternal() | 1 << (pseudo - kFirstPublicPseudoId)));
3775 } 3763 }
3776 3764
3777 inline bool ComputedStyle::HasPseudoElementStyle() const { 3765 inline bool ComputedStyle::HasPseudoElementStyle() const {
3778 return PseudoBitsInternal() & kElementPseudoIdMask; 3766 return PseudoBitsInternal() & kElementPseudoIdMask;
3779 } 3767 }
3780 3768
3781 } // namespace blink 3769 } // namespace blink
3782 3770
3783 #endif // ComputedStyle_h 3771 #endif // ComputedStyle_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698