OLD | NEW |
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 494 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
505 void SetStyleType(PseudoId style_type) { SetStyleTypeInternal(style_type); } | 505 void SetStyleType(PseudoId style_type) { SetStyleTypeInternal(style_type); } |
506 | 506 |
507 ComputedStyle* GetCachedPseudoStyle(PseudoId) const; | 507 ComputedStyle* GetCachedPseudoStyle(PseudoId) const; |
508 ComputedStyle* AddCachedPseudoStyle(RefPtr<ComputedStyle>); | 508 ComputedStyle* AddCachedPseudoStyle(RefPtr<ComputedStyle>); |
509 void RemoveCachedPseudoStyle(PseudoId); | 509 void RemoveCachedPseudoStyle(PseudoId); |
510 | 510 |
511 const PseudoStyleCache* CachedPseudoStyles() const { | 511 const PseudoStyleCache* CachedPseudoStyles() const { |
512 return cached_pseudo_styles_.get(); | 512 return cached_pseudo_styles_.get(); |
513 } | 513 } |
514 | 514 |
515 bool BorderWidthEquals(float border_width_first, | |
516 float border_width_second) const { | |
517 return WidthToFixedPoint(border_width_first) == | |
518 WidthToFixedPoint(border_width_second); | |
519 } | |
520 | |
521 /** | 515 /** |
522 * ComputedStyle properties | 516 * ComputedStyle properties |
523 * | 517 * |
524 * Each property stored in ComputedStyle is made up of fields. Fields have | 518 * Each property stored in ComputedStyle is made up of fields. Fields have |
525 * initial value functions, getters and setters. A field is preferably a | 519 * initial value functions, getters and setters. A field is preferably a |
526 * basic data type or enum, but can be any type. A set of fields should be | 520 * basic data type or enum, but can be any type. A set of fields should be |
527 * preceded by the property the field is stored for. | 521 * preceded by the property the field is stored for. |
528 * | 522 * |
529 * Field method naming should be done like so: | 523 * Field method naming should be done like so: |
530 * // name-of-property | 524 * // name-of-property |
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
710 | 704 |
711 // Border width properties. | 705 // Border width properties. |
712 static float InitialBorderWidth() { return 3; } | 706 static float InitialBorderWidth() { return 3; } |
713 | 707 |
714 // TODO(nainar): Move all fixed point logic to a separate class. | 708 // TODO(nainar): Move all fixed point logic to a separate class. |
715 // border-top-width | 709 // border-top-width |
716 float BorderTopWidth() const { | 710 float BorderTopWidth() const { |
717 if (BorderTopStyle() == EBorderStyle::kNone || | 711 if (BorderTopStyle() == EBorderStyle::kNone || |
718 BorderTopStyle() == EBorderStyle::kHidden) | 712 BorderTopStyle() == EBorderStyle::kHidden) |
719 return 0; | 713 return 0; |
720 return static_cast<float>(BorderTopWidthInternal()) / | 714 return BorderTopWidthInternal().ToFloat(); |
721 kBorderWidthDenominator; | |
722 } | 715 } |
723 void SetBorderTopWidth(float v) { | 716 void SetBorderTopWidth(float v) { SetBorderTopWidthInternal(LayoutUnit(v)); } |
724 SetBorderTopWidthInternal(WidthToFixedPoint(v)); | |
725 } | |
726 bool BorderTopNonZero() const { | 717 bool BorderTopNonZero() const { |
727 return BorderTopWidth() && (BorderTopStyle() != EBorderStyle::kNone); | 718 return BorderTopWidth() && (BorderTopStyle() != EBorderStyle::kNone); |
728 } | 719 } |
729 | 720 |
730 // border-bottom-width | 721 // border-bottom-width |
731 float BorderBottomWidth() const { | 722 float BorderBottomWidth() const { |
732 if (BorderBottomStyle() == EBorderStyle::kNone || | 723 if (BorderBottomStyle() == EBorderStyle::kNone || |
733 BorderBottomStyle() == EBorderStyle::kHidden) | 724 BorderBottomStyle() == EBorderStyle::kHidden) |
734 return 0; | 725 return 0; |
735 return static_cast<float>(BorderBottomWidthInternal()) / | 726 return BorderBottomWidthInternal().ToFloat(); |
736 kBorderWidthDenominator; | |
737 } | 727 } |
738 void SetBorderBottomWidth(float v) { | 728 void SetBorderBottomWidth(float v) { |
739 SetBorderBottomWidthInternal(WidthToFixedPoint(v)); | 729 SetBorderBottomWidthInternal(LayoutUnit(v)); |
740 } | 730 } |
741 bool BorderBottomNonZero() const { | 731 bool BorderBottomNonZero() const { |
742 return BorderBottomWidth() && (BorderBottomStyle() != EBorderStyle::kNone); | 732 return BorderBottomWidth() && (BorderBottomStyle() != EBorderStyle::kNone); |
743 } | 733 } |
744 | 734 |
745 // border-left-width | 735 // border-left-width |
746 float BorderLeftWidth() const { | 736 float BorderLeftWidth() const { |
747 if (BorderLeftStyle() == EBorderStyle::kNone || | 737 if (BorderLeftStyle() == EBorderStyle::kNone || |
748 BorderLeftStyle() == EBorderStyle::kHidden) | 738 BorderLeftStyle() == EBorderStyle::kHidden) |
749 return 0; | 739 return 0; |
750 return static_cast<float>(BorderLeftWidthInternal()) / | 740 return BorderLeftWidthInternal().ToFloat(); |
751 kBorderWidthDenominator; | |
752 } | 741 } |
753 void SetBorderLeftWidth(float v) { | 742 void SetBorderLeftWidth(float v) { |
754 SetBorderLeftWidthInternal(WidthToFixedPoint(v)); | 743 SetBorderLeftWidthInternal(LayoutUnit(v)); |
755 } | 744 } |
756 bool BorderLeftNonZero() const { | 745 bool BorderLeftNonZero() const { |
757 return BorderLeftWidth() && (BorderLeftStyle() != EBorderStyle::kNone); | 746 return BorderLeftWidth() && (BorderLeftStyle() != EBorderStyle::kNone); |
758 } | 747 } |
759 | 748 |
760 // border-right-width | 749 // border-right-width |
761 float BorderRightWidth() const { | 750 float BorderRightWidth() const { |
762 if (BorderRightStyle() == EBorderStyle::kNone || | 751 if (BorderRightStyle() == EBorderStyle::kNone || |
763 BorderRightStyle() == EBorderStyle::kHidden) | 752 BorderRightStyle() == EBorderStyle::kHidden) |
764 return 0; | 753 return 0; |
765 return static_cast<float>(BorderRightWidthInternal()) / | 754 return BorderRightWidthInternal().ToFloat(); |
766 kBorderWidthDenominator; | |
767 } | 755 } |
768 void SetBorderRightWidth(float v) { | 756 void SetBorderRightWidth(float v) { |
769 SetBorderRightWidthInternal(WidthToFixedPoint(v)); | 757 SetBorderRightWidthInternal(LayoutUnit(v)); |
770 } | 758 } |
771 bool BorderRightNonZero() const { | 759 bool BorderRightNonZero() const { |
772 return BorderRightWidth() && (BorderRightStyle() != EBorderStyle::kNone); | 760 return BorderRightWidth() && (BorderRightStyle() != EBorderStyle::kNone); |
773 } | 761 } |
774 | 762 |
775 static EBorderStyle InitialColumnRuleStyle() { return EBorderStyle::kNone; } | 763 static EBorderStyle InitialColumnRuleStyle() { return EBorderStyle::kNone; } |
776 | 764 |
777 // Border color properties. | 765 // Border color properties. |
778 // border-left-color | 766 // border-left-color |
779 void SetBorderLeftColor(const StyleColor& color) { | 767 void SetBorderLeftColor(const StyleColor& color) { |
(...skipping 2251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3031 bool HasBorderImageOutsets() const { | 3019 bool HasBorderImageOutsets() const { |
3032 return BorderImage().HasImage() && BorderImage().Outset().NonZero(); | 3020 return BorderImage().HasImage() && BorderImage().Outset().NonZero(); |
3033 } | 3021 } |
3034 LayoutRectOutsets BorderImageOutsets() const { | 3022 LayoutRectOutsets BorderImageOutsets() const { |
3035 return ImageOutsets(BorderImage()); | 3023 return ImageOutsets(BorderImage()); |
3036 } | 3024 } |
3037 bool BorderImageSlicesFill() const { return BorderImage().Fill(); } | 3025 bool BorderImageSlicesFill() const { return BorderImage().Fill(); } |
3038 | 3026 |
3039 void SetBorderImageSlicesFill(bool); | 3027 void SetBorderImageSlicesFill(bool); |
3040 const BorderValue BorderLeft() const { | 3028 const BorderValue BorderLeft() const { |
3041 return BorderValue( | 3029 return BorderValue(BorderLeftStyle(), BorderLeftColor(), |
3042 BorderLeftStyle(), BorderLeftColor(), | 3030 BorderLeftWidthInternal().ToFloat(), |
3043 static_cast<float>(BorderLeftWidthInternal()) / kBorderWidthDenominator, | 3031 OutlineStyleIsAuto()); |
3044 OutlineStyleIsAuto()); | |
3045 } | 3032 } |
3046 const BorderValue BorderRight() const { | 3033 const BorderValue BorderRight() const { |
3047 return BorderValue(BorderRightStyle(), BorderRightColor(), | 3034 return BorderValue(BorderRightStyle(), BorderRightColor(), |
3048 static_cast<float>(BorderRightWidthInternal()) / | 3035 BorderRightWidthInternal().ToFloat(), |
3049 kBorderWidthDenominator, | |
3050 OutlineStyleIsAuto()); | 3036 OutlineStyleIsAuto()); |
3051 } | 3037 } |
3052 const BorderValue BorderTop() const { | 3038 const BorderValue BorderTop() const { |
3053 return BorderValue( | 3039 return BorderValue(BorderTopStyle(), BorderTopColor(), |
3054 BorderTopStyle(), BorderTopColor(), | 3040 BorderTopWidthInternal().ToFloat(), |
3055 static_cast<float>(BorderTopWidthInternal()) / kBorderWidthDenominator, | 3041 OutlineStyleIsAuto()); |
3056 OutlineStyleIsAuto()); | |
3057 } | 3042 } |
3058 const BorderValue BorderBottom() const { | 3043 const BorderValue BorderBottom() const { |
3059 return BorderValue(BorderBottomStyle(), BorderBottomColor(), | 3044 return BorderValue(BorderBottomStyle(), BorderBottomColor(), |
3060 static_cast<float>(BorderBottomWidthInternal()) / | 3045 BorderBottomWidthInternal().ToFloat(), |
3061 kBorderWidthDenominator, | |
3062 OutlineStyleIsAuto()); | 3046 OutlineStyleIsAuto()); |
3063 } | 3047 } |
3064 | 3048 |
3065 bool BorderSizeEquals(const ComputedStyle& o) const { | 3049 bool BorderSizeEquals(const ComputedStyle& o) const { |
3066 return BorderWidthEquals(BorderLeftWidth(), o.BorderLeftWidth()) && | 3050 return BorderLeftWidthInternal() == o.BorderLeftWidthInternal() && |
3067 BorderWidthEquals(BorderTopWidth(), o.BorderTopWidth()) && | 3051 BorderTopWidthInternal() == o.BorderTopWidthInternal() && |
3068 BorderWidthEquals(BorderRightWidth(), o.BorderRightWidth()) && | 3052 BorderRightWidthInternal() == o.BorderRightWidthInternal() && |
3069 BorderWidthEquals(BorderBottomWidth(), o.BorderBottomWidth()); | 3053 BorderBottomWidthInternal() == o.BorderBottomWidthInternal(); |
3070 } | 3054 } |
3071 | 3055 |
3072 BorderValue BorderBefore() const; | 3056 BorderValue BorderBefore() const; |
3073 BorderValue BorderAfter() const; | 3057 BorderValue BorderAfter() const; |
3074 BorderValue BorderStart() const; | 3058 BorderValue BorderStart() const; |
3075 BorderValue BorderEnd() const; | 3059 BorderValue BorderEnd() const; |
3076 float BorderAfterWidth() const; | 3060 float BorderAfterWidth() const; |
3077 float BorderBeforeWidth() const; | 3061 float BorderBeforeWidth() const; |
3078 float BorderEndWidth() const; | 3062 float BorderEndWidth() const; |
3079 float BorderStartWidth() const; | 3063 float BorderStartWidth() const; |
(...skipping 957 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4037 PseudoBitsInternal() | 1 << (pseudo - kFirstPublicPseudoId))); | 4021 PseudoBitsInternal() | 1 << (pseudo - kFirstPublicPseudoId))); |
4038 } | 4022 } |
4039 | 4023 |
4040 inline bool ComputedStyle::HasPseudoElementStyle() const { | 4024 inline bool ComputedStyle::HasPseudoElementStyle() const { |
4041 return PseudoBitsInternal() & kElementPseudoIdMask; | 4025 return PseudoBitsInternal() & kElementPseudoIdMask; |
4042 } | 4026 } |
4043 | 4027 |
4044 } // namespace blink | 4028 } // namespace blink |
4045 | 4029 |
4046 #endif // ComputedStyle_h | 4030 #endif // ComputedStyle_h |
OLD | NEW |