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

Side by Side Diff: third_party/WebKit/Source/core/css/CSSPrimitiveValue.cpp

Issue 1376573004: Split out Color from CSSPrimitiveValue (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@split_property
Patch Set: Rebase and review feedback Created 5 years, 2 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 * (C) 1999-2003 Lars Knoll (knoll@kde.org) 2 * (C) 1999-2003 Lars Knoll (knoll@kde.org)
3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2012 Apple Inc. All rights reserv ed. 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2012 Apple Inc. All rights reserv ed.
4 * 4 *
5 * This library is free software; you can redistribute it and/or 5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public 6 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either 7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version. 8 * version 2 of the License, or (at your option) any later version.
9 * 9 *
10 * This library is distributed in the hope that it will be useful, 10 * This library is distributed in the hope that it will be useful,
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 } 213 }
214 214
215 CSSPrimitiveValue::CSSPrimitiveValue(double num, UnitType type) 215 CSSPrimitiveValue::CSSPrimitiveValue(double num, UnitType type)
216 : CSSValue(PrimitiveClass) 216 : CSSValue(PrimitiveClass)
217 { 217 {
218 init(type); 218 init(type);
219 ASSERT(std::isfinite(num)); 219 ASSERT(std::isfinite(num));
220 m_value.num = num; 220 m_value.num = num;
221 } 221 }
222 222
223 CSSPrimitiveValue::CSSPrimitiveValue(RGBA32 color)
224 : CSSValue(PrimitiveClass)
225 {
226 init(UnitType::RGBColor);
227 m_value.rgbcolor = color;
228 }
229
230 CSSPrimitiveValue::CSSPrimitiveValue(const Length& length, float zoom) 223 CSSPrimitiveValue::CSSPrimitiveValue(const Length& length, float zoom)
231 : CSSValue(PrimitiveClass) 224 : CSSValue(PrimitiveClass)
232 { 225 {
233 switch (length.type()) { 226 switch (length.type()) {
234 case Auto: 227 case Auto:
235 init(UnitType::ValueID); 228 init(UnitType::ValueID);
236 m_value.valueID = CSSValueAuto; 229 m_value.valueID = CSSValueAuto;
237 break; 230 break;
238 case Intrinsic: 231 case Intrinsic:
239 init(UnitType::ValueID); 232 init(UnitType::ValueID);
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
352 case UnitType::Kilohertz: 345 case UnitType::Kilohertz:
353 case UnitType::Turns: 346 case UnitType::Turns:
354 case UnitType::ViewportWidth: 347 case UnitType::ViewportWidth:
355 case UnitType::ViewportHeight: 348 case UnitType::ViewportHeight:
356 case UnitType::ViewportMin: 349 case UnitType::ViewportMin:
357 case UnitType::ViewportMax: 350 case UnitType::ViewportMax:
358 case UnitType::DotsPerPixel: 351 case UnitType::DotsPerPixel:
359 case UnitType::DotsPerInch: 352 case UnitType::DotsPerInch:
360 case UnitType::DotsPerCentimeter: 353 case UnitType::DotsPerCentimeter:
361 case UnitType::Fraction: 354 case UnitType::Fraction:
362 case UnitType::RGBColor:
363 case UnitType::Unknown: 355 case UnitType::Unknown:
364 case UnitType::ValueID: 356 case UnitType::ValueID:
365 break; 357 break;
366 } 358 }
367 if (m_hasCachedCSSText) { 359 if (m_hasCachedCSSText) {
368 cssTextCache().remove(this); 360 cssTextCache().remove(this);
369 m_hasCachedCSSText = false; 361 m_hasCachedCSSText = false;
370 } 362 }
371 } 363 }
372 364
(...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after
779 case UnitType::ViewportWidth: 771 case UnitType::ViewportWidth:
780 return "vw"; 772 return "vw";
781 case UnitType::ViewportHeight: 773 case UnitType::ViewportHeight:
782 return "vh"; 774 return "vh";
783 case UnitType::ViewportMin: 775 case UnitType::ViewportMin:
784 return "vmin"; 776 return "vmin";
785 case UnitType::ViewportMax: 777 case UnitType::ViewportMax:
786 return "vmax"; 778 return "vmax";
787 case UnitType::Unknown: 779 case UnitType::Unknown:
788 case UnitType::ValueID: 780 case UnitType::ValueID:
789 case UnitType::RGBColor:
790 case UnitType::Calc: 781 case UnitType::Calc:
791 case UnitType::CalcPercentageWithNumber: 782 case UnitType::CalcPercentageWithNumber:
792 case UnitType::CalcPercentageWithLength: 783 case UnitType::CalcPercentageWithLength:
793 break; 784 break;
794 }; 785 };
795 ASSERT_NOT_REACHED(); 786 ASSERT_NOT_REACHED();
796 return ""; 787 return "";
797 } 788 }
798 789
799 String CSSPrimitiveValue::customCSSText() const 790 String CSSPrimitiveValue::customCSSText() const
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
838 case UnitType::Fraction: 829 case UnitType::Fraction:
839 case UnitType::ViewportWidth: 830 case UnitType::ViewportWidth:
840 case UnitType::ViewportHeight: 831 case UnitType::ViewportHeight:
841 case UnitType::ViewportMin: 832 case UnitType::ViewportMin:
842 case UnitType::ViewportMax: 833 case UnitType::ViewportMax:
843 text = formatNumber(m_value.num, unitTypeToString(type())); 834 text = formatNumber(m_value.num, unitTypeToString(type()));
844 break; 835 break;
845 case UnitType::ValueID: 836 case UnitType::ValueID:
846 text = valueName(m_value.valueID); 837 text = valueName(m_value.valueID);
847 break; 838 break;
848 case UnitType::RGBColor: {
849 text = Color(m_value.rgbcolor).serializedAsCSSComponentValue();
850 break;
851 }
852 case UnitType::Calc: 839 case UnitType::Calc:
853 text = m_value.calc->customCSSText(); 840 text = m_value.calc->customCSSText();
854 break; 841 break;
855 case UnitType::CalcPercentageWithNumber: 842 case UnitType::CalcPercentageWithNumber:
856 case UnitType::CalcPercentageWithLength: 843 case UnitType::CalcPercentageWithLength:
857 ASSERT_NOT_REACHED(); 844 ASSERT_NOT_REACHED();
858 break; 845 break;
859 } 846 }
860 847
861 ASSERT(!cssTextCache().contains(this)); 848 ASSERT(!cssTextCache().contains(this));
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
895 case UnitType::Kilohertz: 882 case UnitType::Kilohertz:
896 case UnitType::Turns: 883 case UnitType::Turns:
897 case UnitType::ViewportWidth: 884 case UnitType::ViewportWidth:
898 case UnitType::ViewportHeight: 885 case UnitType::ViewportHeight:
899 case UnitType::ViewportMin: 886 case UnitType::ViewportMin:
900 case UnitType::ViewportMax: 887 case UnitType::ViewportMax:
901 case UnitType::Fraction: 888 case UnitType::Fraction:
902 return m_value.num == other.m_value.num; 889 return m_value.num == other.m_value.num;
903 case UnitType::ValueID: 890 case UnitType::ValueID:
904 return m_value.valueID == other.m_value.valueID; 891 return m_value.valueID == other.m_value.valueID;
905 case UnitType::RGBColor:
906 return m_value.rgbcolor == other.m_value.rgbcolor;
907 case UnitType::Calc: 892 case UnitType::Calc:
908 return m_value.calc && other.m_value.calc && m_value.calc->equals(*other .m_value.calc); 893 return m_value.calc && other.m_value.calc && m_value.calc->equals(*other .m_value.calc);
909 case UnitType::Integer: 894 case UnitType::Integer:
910 case UnitType::Chs: 895 case UnitType::Chs:
911 case UnitType::CalcPercentageWithNumber: 896 case UnitType::CalcPercentageWithNumber:
912 case UnitType::CalcPercentageWithLength: 897 case UnitType::CalcPercentageWithLength:
913 case UnitType::QuirkyEms: 898 case UnitType::QuirkyEms:
914 return false; 899 return false;
915 } 900 }
916 return false; 901 return false;
917 } 902 }
918 903
919 DEFINE_TRACE_AFTER_DISPATCH(CSSPrimitiveValue) 904 DEFINE_TRACE_AFTER_DISPATCH(CSSPrimitiveValue)
920 { 905 {
921 #if ENABLE(OILPAN) 906 #if ENABLE(OILPAN)
922 switch (type()) { 907 switch (type()) {
923 case UnitType::Calc: 908 case UnitType::Calc:
924 visitor->trace(m_value.calc); 909 visitor->trace(m_value.calc);
925 break; 910 break;
926 default: 911 default:
927 break; 912 break;
928 } 913 }
929 #endif 914 #endif
930 CSSValue::traceAfterDispatch(visitor); 915 CSSValue::traceAfterDispatch(visitor);
931 } 916 }
932 917
933 } // namespace blink 918 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/css/CSSPrimitiveValue.h ('k') | third_party/WebKit/Source/core/css/CSSShadowValue.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698