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

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

Issue 2880573002: Store border-*-style on SurroundData in ComputedStyle (Closed)
Patch Set: Store border-*-style on SurroundData in ComputedStyle not BorderStyle Created 3 years, 7 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 458 matching lines...) Expand 10 before | Expand all | Expand 10 after
469 return surround_data_->border_.GetImage().Outset(); 469 return surround_data_->border_.GetImage().Outset();
470 } 470 }
471 void SetBorderImageOutset(const BorderImageLengthBox&); 471 void SetBorderImageOutset(const BorderImageLengthBox&);
472 472
473 // Border width properties. 473 // Border width properties.
474 static float InitialBorderWidth() { return 3; } 474 static float InitialBorderWidth() { return 3; }
475 475
476 // TODO(nainar): Move all fixed point logic to a separate class. 476 // TODO(nainar): Move all fixed point logic to a separate class.
477 // border-top-width 477 // border-top-width
478 float BorderTopWidth() const { 478 float BorderTopWidth() const {
479 if (surround_data_->border_.top_.Style() == kBorderStyleNone || 479 if (BorderTopStyle() == EBorderStyle::kNone ||
480 surround_data_->border_.top_.Style() == kBorderStyleHidden) 480 BorderTopStyle() == EBorderStyle::kHidden)
481 return 0; 481 return 0;
482 return static_cast<float>(BorderTopWidthInternal()) / 482 return static_cast<float>(BorderTopWidthInternal()) /
483 kBorderWidthDenominator; 483 kBorderWidthDenominator;
484 } 484 }
485 void SetBorderTopWidth(float v) { 485 void SetBorderTopWidth(float v) {
486 surround_data_.Access()->border_top_width_ = WidthToFixedPoint(v); 486 surround_data_.Access()->border_top_width_ = WidthToFixedPoint(v);
487 } 487 }
488 bool BorderTopNonZero() const {
489 return BorderTopWidth() && (BorderTopStyle() != EBorderStyle::kNone);
490 }
488 491
489 // border-bottom-width 492 // border-bottom-width
490 float BorderBottomWidth() const { 493 float BorderBottomWidth() const {
491 if (surround_data_->border_.bottom_.Style() == kBorderStyleNone || 494 if (BorderBottomStyle() == EBorderStyle::kNone ||
492 surround_data_->border_.bottom_.Style() == kBorderStyleHidden) 495 BorderBottomStyle() == EBorderStyle::kHidden)
493 return 0; 496 return 0;
494 return static_cast<float>(BorderBottomWidthInternal()) / 497 return static_cast<float>(BorderBottomWidthInternal()) /
495 kBorderWidthDenominator; 498 kBorderWidthDenominator;
496 } 499 }
497 void SetBorderBottomWidth(float v) { 500 void SetBorderBottomWidth(float v) {
498 surround_data_.Access()->border_bottom_width_ = WidthToFixedPoint(v); 501 surround_data_.Access()->border_bottom_width_ = WidthToFixedPoint(v);
499 } 502 }
503 bool BorderBottomNonZero() const {
504 return BorderBottomWidth() && (BorderBottomStyle() != EBorderStyle::kNone);
505 }
500 506
501 // border-left-width 507 // border-left-width
502 float BorderLeftWidth() const { 508 float BorderLeftWidth() const {
503 if (surround_data_->border_.left_.Style() == kBorderStyleNone || 509 if (BorderLeftStyle() == EBorderStyle::kNone ||
504 surround_data_->border_.left_.Style() == kBorderStyleHidden) 510 BorderLeftStyle() == EBorderStyle::kHidden)
505 return 0; 511 return 0;
506 return static_cast<float>(BorderLeftWidthInternal()) / 512 return static_cast<float>(BorderLeftWidthInternal()) /
507 kBorderWidthDenominator; 513 kBorderWidthDenominator;
508 } 514 }
509 void SetBorderLeftWidth(float v) { 515 void SetBorderLeftWidth(float v) {
510 surround_data_.Access()->border_left_width_ = WidthToFixedPoint(v); 516 surround_data_.Access()->border_left_width_ = WidthToFixedPoint(v);
511 } 517 }
518 bool BorderLeftNonZero() const {
519 return BorderLeftWidth() && (BorderLeftStyle() != EBorderStyle::kNone);
520 }
512 521
513 // border-right-width 522 // border-right-width
514 float BorderRightWidth() const { 523 float BorderRightWidth() const {
515 if (surround_data_->border_.right_.Style() == kBorderStyleNone || 524 if (BorderRightStyle() == EBorderStyle::kNone ||
516 surround_data_->border_.right_.Style() == kBorderStyleHidden) 525 BorderRightStyle() == EBorderStyle::kHidden)
517 return 0; 526 return 0;
518 return static_cast<float>(BorderRightWidthInternal()) / 527 return static_cast<float>(BorderRightWidthInternal()) /
519 kBorderWidthDenominator; 528 kBorderWidthDenominator;
520 } 529 }
521 void SetBorderRightWidth(float v) { 530 void SetBorderRightWidth(float v) {
522 surround_data_.Access()->border_right_width_ = WidthToFixedPoint(v); 531 surround_data_.Access()->border_right_width_ = WidthToFixedPoint(v);
523 } 532 }
524 533 bool BorderRightNonZero() const {
525 // Border style properties. 534 return BorderRightWidth() && (BorderRightStyle() != EBorderStyle::kNone);
526 static EBorderStyle InitialBorderStyle() { return kBorderStyleNone; }
527
528 // border-top-style
529 EBorderStyle BorderTopStyle() const {
530 return surround_data_->border_.Top().Style();
531 }
532 void SetBorderTopStyle(EBorderStyle v) {
533 SET_VAR(surround_data_, border_.top_.style_, v);
534 } 535 }
535 536
536 // border-right-style 537 static EBorderStyle InitialColumnRuleStyle() { return EBorderStyle::kNone; }
537 EBorderStyle BorderRightStyle() const {
538 return surround_data_->border_.Right().Style();
539 }
540 void SetBorderRightStyle(EBorderStyle v) {
541 SET_VAR(surround_data_, border_.right_.style_, v);
542 }
543
544 // border-left-style
545 EBorderStyle BorderLeftStyle() const {
546 return surround_data_->border_.Left().Style();
547 }
548 void SetBorderLeftStyle(EBorderStyle v) {
549 SET_VAR(surround_data_, border_.left_.style_, v);
550 }
551
552 // border-bottom-style
553 EBorderStyle BorderBottomStyle() const {
554 return surround_data_->border_.Bottom().Style();
555 }
556 void SetBorderBottomStyle(EBorderStyle v) {
557 SET_VAR(surround_data_, border_.bottom_.style_, v);
558 }
559 538
560 // Border color properties. 539 // Border color properties.
561 // border-left-color 540 // border-left-color
562 void SetBorderLeftColor(const StyleColor& color) { 541 void SetBorderLeftColor(const StyleColor& color) {
563 if (!compareEqual(BorderLeftColor(), color)) { 542 if (!compareEqual(BorderLeftColor(), color)) {
564 SetBorderLeftColorInternal(color.Resolve(Color())); 543 SetBorderLeftColorInternal(color.Resolve(Color()));
565 SetBorderLeftColorIsCurrentColor(color.IsCurrentColor()); 544 SetBorderLeftColorIsCurrentColor(color.IsCurrentColor());
566 } 545 }
567 } 546 }
568 547
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
656 void SetColumnRuleColor(const StyleColor& c) { 635 void SetColumnRuleColor(const StyleColor& c) {
657 SET_BORDERVALUE_COLOR(rare_non_inherited_data_.Access()->multi_col_, rule_, 636 SET_BORDERVALUE_COLOR(rare_non_inherited_data_.Access()->multi_col_, rule_,
658 c); 637 c);
659 } 638 }
660 639
661 // column-rule-style (aka -webkit-column-rule-style) 640 // column-rule-style (aka -webkit-column-rule-style)
662 EBorderStyle ColumnRuleStyle() const { 641 EBorderStyle ColumnRuleStyle() const {
663 return rare_non_inherited_data_->multi_col_->rule_.Style(); 642 return rare_non_inherited_data_->multi_col_->rule_.Style();
664 } 643 }
665 void SetColumnRuleStyle(EBorderStyle b) { 644 void SetColumnRuleStyle(EBorderStyle b) {
666 SET_NESTED_VAR(rare_non_inherited_data_, multi_col_, rule_.style_, b); 645 SET_NESTED_VAR(rare_non_inherited_data_, multi_col_, rule_.style_,
646 static_cast<unsigned>(b));
667 } 647 }
668 648
669 // column-rule-width (aka -webkit-column-rule-width) 649 // column-rule-width (aka -webkit-column-rule-width)
670 static unsigned short InitialColumnRuleWidth() { return 3; } 650 static unsigned short InitialColumnRuleWidth() { return 3; }
671 unsigned short ColumnRuleWidth() const { 651 unsigned short ColumnRuleWidth() const {
672 return rare_non_inherited_data_->multi_col_->RuleWidth(); 652 return rare_non_inherited_data_->multi_col_->RuleWidth();
673 } 653 }
674 void SetColumnRuleWidth(unsigned short w) { 654 void SetColumnRuleWidth(unsigned short w) {
675 SET_NESTED_BORDER_WIDTH(rare_non_inherited_data_, multi_col_, rule_, w); 655 SET_NESTED_BORDER_WIDTH(rare_non_inherited_data_, multi_col_, rule_, w);
676 } 656 }
(...skipping 469 matching lines...) Expand 10 before | Expand all | Expand 10 after
1146 // outline-color 1126 // outline-color
1147 void SetOutlineColor(const StyleColor& v) { 1127 void SetOutlineColor(const StyleColor& v) {
1148 SET_BORDERVALUE_COLOR(rare_non_inherited_data_, outline_, v); 1128 SET_BORDERVALUE_COLOR(rare_non_inherited_data_, outline_, v);
1149 } 1129 }
1150 1130
1151 // outline-style 1131 // outline-style
1152 EBorderStyle OutlineStyle() const { 1132 EBorderStyle OutlineStyle() const {
1153 return rare_non_inherited_data_->outline_.Style(); 1133 return rare_non_inherited_data_->outline_.Style();
1154 } 1134 }
1155 void SetOutlineStyle(EBorderStyle v) { 1135 void SetOutlineStyle(EBorderStyle v) {
1156 SET_VAR(rare_non_inherited_data_, outline_.style_, v); 1136 SET_VAR(rare_non_inherited_data_, outline_.style_,
1137 static_cast<unsigned>(v));
1157 } 1138 }
1158 static OutlineIsAuto InitialOutlineStyleIsAuto() { return kOutlineIsAutoOff; } 1139 static OutlineIsAuto InitialOutlineStyleIsAuto() { return kOutlineIsAutoOff; }
1159 OutlineIsAuto OutlineStyleIsAuto() const { 1140 OutlineIsAuto OutlineStyleIsAuto() const {
1160 return static_cast<OutlineIsAuto>( 1141 return static_cast<OutlineIsAuto>(
1161 rare_non_inherited_data_->outline_.IsAuto()); 1142 rare_non_inherited_data_->outline_.IsAuto());
1162 } 1143 }
1163 void SetOutlineStyleIsAuto(OutlineIsAuto is_auto) { 1144 void SetOutlineStyleIsAuto(OutlineIsAuto is_auto) {
1164 SET_VAR(rare_non_inherited_data_, outline_.is_auto_, is_auto); 1145 SET_VAR(rare_non_inherited_data_, outline_.is_auto_, is_auto);
1165 } 1146 }
1166 1147
1167 // outline-width 1148 // outline-width
1168 static unsigned short InitialOutlineWidth() { return 3; } 1149 static unsigned short InitialOutlineWidth() { return 3; }
1169 unsigned short OutlineWidth() const { 1150 unsigned short OutlineWidth() const {
1170 if (rare_non_inherited_data_->outline_.Style() == kBorderStyleNone) 1151 if (rare_non_inherited_data_->outline_.Style() == EBorderStyle::kNone)
1171 return 0; 1152 return 0;
1172 return rare_non_inherited_data_->outline_.Width(); 1153 return rare_non_inherited_data_->outline_.Width();
1173 } 1154 }
1174 void SetOutlineWidth(unsigned short v) { 1155 void SetOutlineWidth(unsigned short v) {
1175 SET_BORDER_WIDTH(rare_non_inherited_data_, outline_, v); 1156 SET_BORDER_WIDTH(rare_non_inherited_data_, outline_, v);
1176 } 1157 }
1177 1158
1178 // outline-offset 1159 // outline-offset
1179 static int InitialOutlineOffset() { return 0; } 1160 static int InitialOutlineOffset() { return 0; }
1180 int OutlineOffset() const { 1161 int OutlineOffset() const {
1181 if (rare_non_inherited_data_->outline_.Style() == kBorderStyleNone) 1162 if (rare_non_inherited_data_->outline_.Style() == EBorderStyle::kNone)
1182 return 0; 1163 return 0;
1183 return rare_non_inherited_data_->outline_.Offset(); 1164 return rare_non_inherited_data_->outline_.Offset();
1184 } 1165 }
1185 void SetOutlineOffset(int v) { 1166 void SetOutlineOffset(int v) {
1186 SET_VAR(rare_non_inherited_data_, outline_.offset_, v); 1167 SET_VAR(rare_non_inherited_data_, outline_.offset_, v);
1187 } 1168 }
1188 1169
1189 // perspective (aka -webkit-perspective) 1170 // perspective (aka -webkit-perspective)
1190 static float InitialPerspective() { return 0; } 1171 static float InitialPerspective() { return 0; }
1191 float Perspective() const { return rare_non_inherited_data_->perspective_; } 1172 float Perspective() const { return rare_non_inherited_data_->perspective_; }
(...skipping 1625 matching lines...) Expand 10 before | Expand all | Expand 10 after
2817 bool HasBorderImageOutsets() const { 2798 bool HasBorderImageOutsets() const {
2818 return BorderImage().HasImage() && BorderImage().Outset().NonZero(); 2799 return BorderImage().HasImage() && BorderImage().Outset().NonZero();
2819 } 2800 }
2820 LayoutRectOutsets BorderImageOutsets() const { 2801 LayoutRectOutsets BorderImageOutsets() const {
2821 return ImageOutsets(BorderImage()); 2802 return ImageOutsets(BorderImage());
2822 } 2803 }
2823 bool BorderImageSlicesFill() const { return Border().GetImage().Fill(); } 2804 bool BorderImageSlicesFill() const { return Border().GetImage().Fill(); }
2824 2805
2825 void SetBorderImageSlicesFill(bool); 2806 void SetBorderImageSlicesFill(bool);
2826 const BorderData& Border() const { return surround_data_->border_; } 2807 const BorderData& Border() const { return surround_data_->border_; }
2827 BorderValue BorderLeft() const { 2808 const BorderValue BorderLeft() const {
2828 return BorderValue(surround_data_->border_.Left(), BorderLeftColor(), 2809 return BorderValue(BorderLeftStyle(), BorderLeftColor(), BorderLeftWidth());
2829 BorderLeftWidth());
2830 } 2810 }
2831 BorderValue BorderRight() const { 2811 const BorderValue BorderRight() const {
2832 return BorderValue(surround_data_->border_.Right(), BorderRightColor(), 2812 return BorderValue(BorderRightStyle(), BorderRightColor(),
2833 BorderRightWidth()); 2813 BorderRightWidth());
2834 } 2814 }
2835 BorderValue BorderTop() const { 2815 const BorderValue BorderTop() const {
2836 return BorderValue(surround_data_->border_.Top(), BorderTopColor(), 2816 return BorderValue(BorderTopStyle(), BorderTopColor(), BorderTopWidth());
2837 BorderTopWidth());
2838 } 2817 }
2839 BorderValue BorderBottom() const { 2818 const BorderValue BorderBottom() const {
2840 return BorderValue(surround_data_->border_.Bottom(), BorderBottomColor(), 2819 return BorderValue(BorderBottomStyle(), BorderBottomColor(),
2841 BorderBottomWidth()); 2820 BorderBottomWidth());
2842 } 2821 }
2822
2843 bool BorderSizeEquals(const ComputedStyle& o) const { 2823 bool BorderSizeEquals(const ComputedStyle& o) const {
2844 return BorderWidthEquals(BorderLeftWidth(), o.BorderLeftWidth()) && 2824 return BorderWidthEquals(BorderLeftWidth(), o.BorderLeftWidth()) &&
2845 BorderWidthEquals(BorderTopWidth(), o.BorderTopWidth()) && 2825 BorderWidthEquals(BorderTopWidth(), o.BorderTopWidth()) &&
2846 BorderWidthEquals(BorderRightWidth(), o.BorderRightWidth()) && 2826 BorderWidthEquals(BorderRightWidth(), o.BorderRightWidth()) &&
2847 BorderWidthEquals(BorderBottomWidth(), o.BorderBottomWidth()); 2827 BorderWidthEquals(BorderBottomWidth(), o.BorderBottomWidth());
2848 } 2828 }
2829
2849 BorderValue BorderBefore() const; 2830 BorderValue BorderBefore() const;
2850 BorderValue BorderAfter() const; 2831 BorderValue BorderAfter() const;
2851 BorderValue BorderStart() const; 2832 BorderValue BorderStart() const;
2852 BorderValue BorderEnd() const; 2833 BorderValue BorderEnd() const;
2853 float BorderAfterWidth() const; 2834 float BorderAfterWidth() const;
2854 float BorderBeforeWidth() const; 2835 float BorderBeforeWidth() const;
2855 float BorderEndWidth() const; 2836 float BorderEndWidth() const;
2856 float BorderStartWidth() const; 2837 float BorderStartWidth() const;
2857 float BorderOverWidth() const; 2838 float BorderOverWidth() const;
2858 float BorderUnderWidth() const; 2839 float BorderUnderWidth() const;
2859 2840
2860 bool HasBorderFill() const { return Border().HasBorderFill(); } 2841 bool HasBorderFill() const { return Border().HasBorderFill(); }
2861 bool HasBorder() const { 2842 bool HasBorder() const {
2862 return Border().HasBorder() || BorderLeftWidth() || BorderRightWidth() || 2843 return BorderLeftNonZero() || BorderRightNonZero() || BorderTopNonZero() ||
2863 BorderTopWidth() || BorderBottomWidth(); 2844 BorderBottomNonZero();
2864 } 2845 }
2865 bool HasBorderDecoration() const { return HasBorder() || HasBorderFill(); } 2846 bool HasBorderDecoration() const { return HasBorder() || HasBorderFill(); }
2866 bool HasBorderRadius() const { 2847 bool HasBorderRadius() const {
2867 if (!BorderTopLeftRadius().Width().IsZero()) 2848 if (!BorderTopLeftRadius().Width().IsZero())
2868 return true; 2849 return true;
2869 if (!BorderTopRightRadius().Width().IsZero()) 2850 if (!BorderTopRightRadius().Width().IsZero())
2870 return true; 2851 return true;
2871 if (!BorderBottomLeftRadius().Width().IsZero()) 2852 if (!BorderBottomLeftRadius().Width().IsZero())
2872 return true; 2853 return true;
2873 if (!BorderBottomRightRadius().Width().IsZero()) 2854 if (!BorderBottomRightRadius().Width().IsZero())
2874 return true; 2855 return true;
2875 return false; 2856 return false;
2876 } 2857 }
2877 bool HasBorderColorReferencingCurrentColor() const { 2858 bool HasBorderColorReferencingCurrentColor() const {
2878 return (BorderLeft().NonZero() && BorderLeftColor().IsCurrentColor()) || 2859 return (BorderLeft().NonZero() && BorderLeftColor().IsCurrentColor()) ||
2879 (BorderRight().NonZero() && BorderRightColor().IsCurrentColor()) || 2860 (BorderRight().NonZero() && BorderRightColor().IsCurrentColor()) ||
2880 (BorderTop().NonZero() && BorderTopColor().IsCurrentColor()) || 2861 (BorderTop().NonZero() && BorderTopColor().IsCurrentColor()) ||
2881 (BorderBottom().NonZero() && BorderBottomColor().IsCurrentColor()); 2862 (BorderBottom().NonZero() && BorderBottomColor().IsCurrentColor());
2882 } 2863 }
2883 2864
2884 bool RadiiEqual(const ComputedStyle& o) const { 2865 bool RadiiEqual(const ComputedStyle& o) const {
2885 return BorderTopLeftRadius() == o.BorderTopLeftRadius() && 2866 return BorderTopLeftRadius() == o.BorderTopLeftRadius() &&
2886 BorderTopRightRadius() == o.BorderTopRightRadius() && 2867 BorderTopRightRadius() == o.BorderTopRightRadius() &&
2887 BorderBottomLeftRadius() == o.BorderBottomLeftRadius() && 2868 BorderBottomLeftRadius() == o.BorderBottomLeftRadius() &&
2888 BorderBottomRightRadius() == o.BorderBottomRightRadius(); 2869 BorderBottomRightRadius() == o.BorderBottomRightRadius();
2889 } 2870 }
2890 2871
2891 bool BorderColorEquals(const ComputedStyle& o) const { 2872 bool BorderLeftEquals(const ComputedStyle& o) const {
2892 return (BorderLeftColorInternal() == o.BorderLeftColorInternal() && 2873 return BorderLeftWidthInternal() == o.BorderLeftWidthInternal() &&
2893 BorderRightColorInternal() == o.BorderRightColorInternal() && 2874 BorderLeftStyle() == o.BorderLeftStyle() &&
2894 BorderTopColorInternal() == o.BorderTopColorInternal() && 2875 BorderLeftColor() == o.BorderLeftColor() &&
2895 BorderBottomColorInternal() == o.BorderBottomColorInternal()) && 2876 BorderLeftColorIsCurrentColor() == o.BorderLeftColorIsCurrentColor();
2896 (BorderLeftColorIsCurrentColor() ==
2897 o.BorderLeftColorIsCurrentColor() &&
2898 BorderRightColorIsCurrentColor() ==
2899 o.BorderRightColorIsCurrentColor() &&
2900 BorderTopColorIsCurrentColor() ==
2901 o.BorderTopColorIsCurrentColor() &&
2902 BorderBottomColorIsCurrentColor() ==
2903 o.BorderBottomColorIsCurrentColor());
2904 } 2877 }
2905 2878
2906 bool BorderColorVisuallyEquals(const ComputedStyle& o) const { 2879 bool BorderLeftVisuallyEqual(const ComputedStyle& o) const {
2907 if ((BorderLeftStyle() == kBorderStyleNone && 2880 if (BorderLeftStyle() == EBorderStyle::kNone &&
2908 o.BorderLeftStyle() == kBorderStyleNone) && 2881 o.BorderLeftStyle() == EBorderStyle::kNone)
2909 (BorderRightStyle() == kBorderStyleNone &&
2910 o.BorderRightStyle() == kBorderStyleNone) &&
2911 (BorderTopStyle() == kBorderStyleNone &&
2912 o.BorderTopStyle() == kBorderStyleNone) &&
2913 (BorderBottomStyle() == kBorderStyleNone &&
2914 o.BorderBottomStyle() == kBorderStyleNone))
2915 return true; 2882 return true;
2916 if ((BorderLeftStyle() == kBorderStyleHidden && 2883 if (BorderLeftStyle() == EBorderStyle::kHidden &&
2917 o.BorderLeftStyle() == kBorderStyleHidden) && 2884 o.BorderLeftStyle() == EBorderStyle::kHidden)
2918 (BorderRightStyle() == kBorderStyleHidden &&
2919 o.BorderRightStyle() == kBorderStyleHidden) &&
2920 (BorderTopStyle() == kBorderStyleHidden &&
2921 o.BorderTopStyle() == kBorderStyleHidden) &&
2922 (BorderBottomStyle() == kBorderStyleHidden &&
2923 o.BorderBottomStyle() == kBorderStyleHidden))
2924 return true; 2885 return true;
2925 return BorderColorEquals(o); 2886 return BorderLeftEquals(o);
2887 }
2888
2889 bool BorderRightEquals(const ComputedStyle& o) const {
2890 return BorderRightWidthInternal() == o.BorderRightWidthInternal() &&
2891 BorderRightStyle() == o.BorderRightStyle() &&
2892 BorderRightColor() == o.BorderRightColor() &&
2893 BorderRightColorIsCurrentColor() ==
2894 o.BorderRightColorIsCurrentColor();
2895 }
2896
2897 bool BorderRightVisuallyEqual(const ComputedStyle& o) const {
2898 if (BorderRightStyle() == EBorderStyle::kNone &&
2899 o.BorderRightStyle() == EBorderStyle::kNone)
2900 return true;
2901 if (BorderRightStyle() == EBorderStyle::kHidden &&
2902 o.BorderRightStyle() == EBorderStyle::kHidden)
2903 return true;
2904 return BorderRightEquals(o);
2905 }
2906
2907 bool BorderTopVisuallyEqual(const ComputedStyle& o) const {
2908 if (BorderTopStyle() == EBorderStyle::kNone &&
2909 o.BorderTopStyle() == EBorderStyle::kNone)
2910 return true;
2911 if (BorderTopStyle() == EBorderStyle::kHidden &&
2912 o.BorderTopStyle() == EBorderStyle::kHidden)
2913 return true;
2914 return BorderTopEquals(o);
2915 }
2916
2917 bool BorderTopEquals(const ComputedStyle& o) const {
2918 return BorderTopWidthInternal() == o.BorderTopWidthInternal() &&
2919 BorderTopStyle() == o.BorderTopStyle() &&
2920 BorderTopColor() == o.BorderTopColor() &&
2921 BorderTopColorIsCurrentColor() == o.BorderTopColorIsCurrentColor();
2922 }
2923
2924 bool BorderBottomVisuallyEqual(const ComputedStyle& o) const {
2925 if (BorderBottomStyle() == EBorderStyle::kNone &&
2926 o.BorderBottomStyle() == EBorderStyle::kNone)
2927 return true;
2928 if (BorderBottomStyle() == EBorderStyle::kHidden &&
2929 o.BorderBottomStyle() == EBorderStyle::kHidden)
2930 return true;
2931 return BorderBottomEquals(o);
2932 }
2933
2934 bool BorderBottomEquals(const ComputedStyle& o) const {
2935 return BorderBottomWidthInternal() == o.BorderBottomWidthInternal() &&
2936 BorderBottomStyle() == o.BorderBottomStyle() &&
2937 BorderBottomColor() == o.BorderBottomColor() &&
2938 BorderBottomColorIsCurrentColor() ==
2939 o.BorderBottomColorIsCurrentColor();
2940 }
2941
2942 bool BorderEquals(const ComputedStyle& o) const {
2943 return BorderLeftEquals(o) && BorderRightEquals(o) && BorderTopEquals(o) &&
2944 BorderBottomEquals(o) && BorderImage() != o.BorderImage();
2945 }
2946
2947 bool BorderVisuallyEqual(const ComputedStyle& o) const {
2948 return BorderLeftVisuallyEqual(o) && BorderRightVisuallyEqual(o) &&
2949 BorderTopVisuallyEqual(o) && BorderBottomVisuallyEqual(o);
2926 } 2950 }
2927 2951
2928 void ResetBorder() { 2952 void ResetBorder() {
2929 ResetBorderImage(); 2953 ResetBorderImage();
2930 ResetBorderTop(); 2954 ResetBorderTop();
2931 ResetBorderRight(); 2955 ResetBorderRight();
2932 ResetBorderBottom(); 2956 ResetBorderBottom();
2933 ResetBorderLeft(); 2957 ResetBorderLeft();
2934 ResetBorderTopLeftRadius(); 2958 ResetBorderTopLeftRadius();
2935 ResetBorderTopRightRadius(); 2959 ResetBorderTopRightRadius();
2936 ResetBorderBottomLeftRadius(); 2960 ResetBorderBottomLeftRadius();
2937 ResetBorderBottomRightRadius(); 2961 ResetBorderBottomRightRadius();
2938 } 2962 }
2939 2963
2940 void ResetBorderTop() { 2964 void ResetBorderTop() {
2941 SET_VAR(surround_data_, border_.top_, BorderStyle()); 2965 SetBorderTopStyle(EBorderStyle::kNone);
2942 SetBorderTopWidth(3); 2966 SetBorderTopWidth(3);
2943 SetBorderTopColorInternal(0); 2967 SetBorderTopColorInternal(0);
2944 SetBorderTopColorInternal(true); 2968 SetBorderTopColorInternal(true);
2969 SetBorderTopStyle(EBorderStyle::kNone);
2945 } 2970 }
2946 void ResetBorderRight() { 2971 void ResetBorderRight() {
2947 SET_VAR(surround_data_, border_.right_, BorderStyle()); 2972 SetBorderRightStyle(EBorderStyle::kNone);
2948 SetBorderRightWidth(3); 2973 SetBorderRightWidth(3);
2949 SetBorderRightColorInternal(0); 2974 SetBorderRightColorInternal(0);
2950 SetBorderRightColorInternal(true); 2975 SetBorderRightColorInternal(true);
2976 SetBorderRightStyle(EBorderStyle::kNone);
2951 } 2977 }
2952 void ResetBorderBottom() { 2978 void ResetBorderBottom() {
2953 SET_VAR(surround_data_, border_.bottom_, BorderStyle()); 2979 SetBorderBottomStyle(EBorderStyle::kNone);
2954 SetBorderBottomWidth(3); 2980 SetBorderBottomWidth(3);
2955 SetBorderBottomColorInternal(0); 2981 SetBorderBottomColorInternal(0);
2956 SetBorderBottomColorInternal(true); 2982 SetBorderBottomColorInternal(true);
2983 SetBorderBottomStyle(EBorderStyle::kNone);
2957 } 2984 }
2958 void ResetBorderLeft() { 2985 void ResetBorderLeft() {
2959 SET_VAR(surround_data_, border_.left_, BorderStyle()); 2986 SetBorderLeftStyle(EBorderStyle::kNone);
2960 SetBorderLeftWidth(3); 2987 SetBorderLeftWidth(3);
2961 SetBorderLeftColorInternal(0); 2988 SetBorderLeftColorInternal(0);
2962 SetBorderLeftColorInternal(true); 2989 SetBorderLeftColorInternal(true);
2990 SetBorderLeftStyle(EBorderStyle::kNone);
2963 } 2991 }
2964 void ResetBorderImage() { 2992 void ResetBorderImage() {
2965 SET_VAR(surround_data_, border_.image_, NinePieceImage()); 2993 SET_VAR(surround_data_, border_.image_, NinePieceImage());
2966 } 2994 }
2967 2995
2968 void SetBorderRadius(const LengthSize& s) { 2996 void SetBorderRadius(const LengthSize& s) {
2969 SetBorderTopLeftRadius(s); 2997 SetBorderTopLeftRadius(s);
2970 SetBorderTopRightRadius(s); 2998 SetBorderTopRightRadius(s);
2971 SetBorderBottomLeftRadius(s); 2999 SetBorderBottomLeftRadius(s);
2972 SetBorderBottomRightRadius(s); 3000 SetBorderBottomRightRadius(s);
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
3011 return rare_non_inherited_data_->perspective_ > 0; 3039 return rare_non_inherited_data_->perspective_ > 0;
3012 } 3040 }
3013 3041
3014 // Page size utility functions. 3042 // Page size utility functions.
3015 void ResetPageSizeType() { 3043 void ResetPageSizeType() {
3016 SET_VAR(rare_non_inherited_data_, page_size_type_, PAGE_SIZE_AUTO); 3044 SET_VAR(rare_non_inherited_data_, page_size_type_, PAGE_SIZE_AUTO);
3017 } 3045 }
3018 3046
3019 // Outline utility functions. 3047 // Outline utility functions.
3020 bool HasOutline() const { 3048 bool HasOutline() const {
3021 return OutlineWidth() > 0 && OutlineStyle() > kBorderStyleHidden; 3049 return OutlineWidth() > 0 && OutlineStyle() > EBorderStyle::kHidden;
3022 } 3050 }
3023 int OutlineOutsetExtent() const; 3051 int OutlineOutsetExtent() const;
3024 float GetOutlineStrokeWidthForFocusRing() const; 3052 float GetOutlineStrokeWidthForFocusRing() const;
3025 bool HasOutlineWithCurrentColor() const { 3053 bool HasOutlineWithCurrentColor() const {
3026 return HasOutline() && OutlineColor().IsCurrentColor(); 3054 return HasOutline() && OutlineColor().IsCurrentColor();
3027 } 3055 }
3028 3056
3029 // Position utility functions. 3057 // Position utility functions.
3030 bool HasOutOfFlowPosition() const { 3058 bool HasOutOfFlowPosition() const {
3031 return GetPosition() == EPosition::kAbsolute || 3059 return GetPosition() == EPosition::kAbsolute ||
(...skipping 739 matching lines...) Expand 10 before | Expand all | Expand 10 after
3771 PseudoBitsInternal() | 1 << (pseudo - kFirstPublicPseudoId))); 3799 PseudoBitsInternal() | 1 << (pseudo - kFirstPublicPseudoId)));
3772 } 3800 }
3773 3801
3774 inline bool ComputedStyle::HasPseudoElementStyle() const { 3802 inline bool ComputedStyle::HasPseudoElementStyle() const {
3775 return PseudoBitsInternal() & kElementPseudoIdMask; 3803 return PseudoBitsInternal() & kElementPseudoIdMask;
3776 } 3804 }
3777 3805
3778 } // namespace blink 3806 } // namespace blink
3779 3807
3780 #endif // ComputedStyle_h 3808 #endif // ComputedStyle_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698