OLD | NEW |
---|---|
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 472 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
483 // The logic in this function is duplicated in MediaValues::computeLength | 483 // The logic in this function is duplicated in MediaValues::computeLength |
484 // because MediaValues::computeLength needs nearly identical logic, but we h aven't found a way to make | 484 // because MediaValues::computeLength needs nearly identical logic, but we h aven't found a way to make |
485 // CSSPrimitiveValue::computeLengthDouble more generic (to solve both cases) without hurting performance. | 485 // CSSPrimitiveValue::computeLengthDouble more generic (to solve both cases) without hurting performance. |
486 if (type() == UnitType::Calc) | 486 if (type() == UnitType::Calc) |
487 return m_value.calc->computeLengthPx(conversionData); | 487 return m_value.calc->computeLengthPx(conversionData); |
488 | 488 |
489 double factor; | 489 double factor; |
490 | 490 |
491 switch (type()) { | 491 switch (type()) { |
492 case UnitType::Ems: | 492 case UnitType::Ems: |
493 case UnitType::QuirkyEms: | |
493 factor = conversionData.emFontSize(); | 494 factor = conversionData.emFontSize(); |
494 break; | 495 break; |
495 case UnitType::Exs: | 496 case UnitType::Exs: |
496 factor = conversionData.exFontSize(); | 497 factor = conversionData.exFontSize(); |
497 break; | 498 break; |
498 case UnitType::Rems: | 499 case UnitType::Rems: |
499 factor = conversionData.remFontSize(); | 500 factor = conversionData.remFontSize(); |
500 break; | 501 break; |
501 case UnitType::Chs: | 502 case UnitType::Chs: |
502 factor = conversionData.chFontSize(); | 503 factor = conversionData.chFontSize(); |
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
671 switch (unitType) { | 672 switch (unitType) { |
672 case CSSPrimitiveValue::UnitType::Pixels: | 673 case CSSPrimitiveValue::UnitType::Pixels: |
673 case CSSPrimitiveValue::UnitType::Centimeters: | 674 case CSSPrimitiveValue::UnitType::Centimeters: |
674 case CSSPrimitiveValue::UnitType::Millimeters: | 675 case CSSPrimitiveValue::UnitType::Millimeters: |
675 case CSSPrimitiveValue::UnitType::Inches: | 676 case CSSPrimitiveValue::UnitType::Inches: |
676 case CSSPrimitiveValue::UnitType::Points: | 677 case CSSPrimitiveValue::UnitType::Points: |
677 case CSSPrimitiveValue::UnitType::Picas: | 678 case CSSPrimitiveValue::UnitType::Picas: |
678 lengthType = UnitTypePixels; | 679 lengthType = UnitTypePixels; |
679 return true; | 680 return true; |
680 case CSSPrimitiveValue::UnitType::Ems: | 681 case CSSPrimitiveValue::UnitType::Ems: |
682 case CSSPrimitiveValue::UnitType::QuirkyEms: | |
681 lengthType = UnitTypeFontSize; | 683 lengthType = UnitTypeFontSize; |
682 return true; | 684 return true; |
683 case CSSPrimitiveValue::UnitType::Exs: | 685 case CSSPrimitiveValue::UnitType::Exs: |
684 lengthType = UnitTypeFontXSize; | 686 lengthType = UnitTypeFontXSize; |
685 return true; | 687 return true; |
686 case CSSPrimitiveValue::UnitType::Rems: | 688 case CSSPrimitiveValue::UnitType::Rems: |
687 lengthType = UnitTypeRootFontSize; | 689 lengthType = UnitTypeRootFontSize; |
688 return true; | 690 return true; |
689 case CSSPrimitiveValue::UnitType::Chs: | 691 case CSSPrimitiveValue::UnitType::Chs: |
690 lengthType = UnitTypeZeroCharacterWidth; | 692 lengthType = UnitTypeZeroCharacterWidth; |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
780 | 782 |
781 const char* CSSPrimitiveValue::unitTypeToString(UnitType type) | 783 const char* CSSPrimitiveValue::unitTypeToString(UnitType type) |
782 { | 784 { |
783 switch (type) { | 785 switch (type) { |
784 case UnitType::Number: | 786 case UnitType::Number: |
785 case UnitType::Integer: | 787 case UnitType::Integer: |
786 return ""; | 788 return ""; |
787 case UnitType::Percentage: | 789 case UnitType::Percentage: |
788 return "%"; | 790 return "%"; |
789 case UnitType::Ems: | 791 case UnitType::Ems: |
792 case UnitType::QuirkyEms: | |
790 return "em"; | 793 return "em"; |
791 case UnitType::Exs: | 794 case UnitType::Exs: |
792 return "ex"; | 795 return "ex"; |
793 case UnitType::Rems: | 796 case UnitType::Rems: |
794 return "rem"; | 797 return "rem"; |
795 case UnitType::Chs: | 798 case UnitType::Chs: |
796 return "ch"; | 799 return "ch"; |
797 case UnitType::Pixels: | 800 case UnitType::Pixels: |
798 return "px"; | 801 return "px"; |
799 case UnitType::Centimeters: | 802 case UnitType::Centimeters: |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
842 case UnitType::CustomIdentifier: | 845 case UnitType::CustomIdentifier: |
843 case UnitType::String: | 846 case UnitType::String: |
844 case UnitType::URI: | 847 case UnitType::URI: |
845 case UnitType::ValueID: | 848 case UnitType::ValueID: |
846 case UnitType::PropertyID: | 849 case UnitType::PropertyID: |
847 case UnitType::RGBColor: | 850 case UnitType::RGBColor: |
848 case UnitType::Calc: | 851 case UnitType::Calc: |
849 case UnitType::Shape: | 852 case UnitType::Shape: |
850 case UnitType::CalcPercentageWithNumber: | 853 case UnitType::CalcPercentageWithNumber: |
851 case UnitType::CalcPercentageWithLength: | 854 case UnitType::CalcPercentageWithLength: |
852 case UnitType::QuirkyEms: | |
853 break; | 855 break; |
854 }; | 856 }; |
855 ASSERT_NOT_REACHED(); | 857 ASSERT_NOT_REACHED(); |
856 return ""; | 858 return ""; |
857 } | 859 } |
858 | 860 |
859 String CSSPrimitiveValue::customCSSText() const | 861 String CSSPrimitiveValue::customCSSText() const |
860 { | 862 { |
861 if (m_hasCachedCSSText) { | 863 if (m_hasCachedCSSText) { |
862 ASSERT(cssTextCache().contains(this)); | 864 ASSERT(cssTextCache().contains(this)); |
863 return cssTextCache().get(this); | 865 return cssTextCache().get(this); |
864 } | 866 } |
865 | 867 |
866 String text; | 868 String text; |
867 switch (type()) { | 869 switch (type()) { |
868 case UnitType::Unknown: | 870 case UnitType::Unknown: |
869 // FIXME | 871 // FIXME |
870 break; | 872 break; |
871 case UnitType::Integer: | 873 case UnitType::Integer: |
872 text = String::format("%d", getIntValue()); | 874 text = String::format("%d", getIntValue()); |
873 break; | 875 break; |
874 case UnitType::Number: | 876 case UnitType::Number: |
875 case UnitType::Percentage: | 877 case UnitType::Percentage: |
876 case UnitType::Ems: | 878 case UnitType::Ems: |
879 case UnitType::QuirkyEms: | |
877 case UnitType::Exs: | 880 case UnitType::Exs: |
878 case UnitType::Rems: | 881 case UnitType::Rems: |
879 case UnitType::Chs: | 882 case UnitType::Chs: |
880 case UnitType::Pixels: | 883 case UnitType::Pixels: |
881 case UnitType::Centimeters: | 884 case UnitType::Centimeters: |
882 case UnitType::DotsPerPixel: | 885 case UnitType::DotsPerPixel: |
883 case UnitType::DotsPerInch: | 886 case UnitType::DotsPerInch: |
884 case UnitType::DotsPerCentimeter: | 887 case UnitType::DotsPerCentimeter: |
885 case UnitType::Millimeters: | 888 case UnitType::Millimeters: |
886 case UnitType::Inches: | 889 case UnitType::Inches: |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
922 break; | 925 break; |
923 } | 926 } |
924 case UnitType::Calc: | 927 case UnitType::Calc: |
925 text = m_value.calc->customCSSText(); | 928 text = m_value.calc->customCSSText(); |
926 break; | 929 break; |
927 case UnitType::Shape: | 930 case UnitType::Shape: |
928 text = m_value.shape->cssText(); | 931 text = m_value.shape->cssText(); |
929 break; | 932 break; |
930 case UnitType::CalcPercentageWithNumber: | 933 case UnitType::CalcPercentageWithNumber: |
931 case UnitType::CalcPercentageWithLength: | 934 case UnitType::CalcPercentageWithLength: |
932 case UnitType::QuirkyEms: | |
933 ASSERT_NOT_REACHED(); | 935 ASSERT_NOT_REACHED(); |
934 break; | 936 break; |
935 } | 937 } |
936 | 938 |
937 ASSERT(!cssTextCache().contains(this)); | 939 ASSERT(!cssTextCache().contains(this)); |
938 cssTextCache().set(this, text); | 940 cssTextCache().set(this, text); |
939 m_hasCachedCSSText = true; | 941 m_hasCachedCSSText = true; |
940 return text; | 942 return text; |
941 } | 943 } |
942 | 944 |
943 bool CSSPrimitiveValue::equals(const CSSPrimitiveValue& other) const | 945 bool CSSPrimitiveValue::equals(const CSSPrimitiveValue& other) const |
944 { | 946 { |
945 if (type() != other.type()) | 947 if (type() != other.type()) |
946 return false; | 948 return false; |
947 | 949 |
948 switch (type()) { | 950 switch (type()) { |
949 case UnitType::Unknown: | 951 case UnitType::Unknown: |
950 return false; | 952 return false; |
951 case UnitType::Number: | 953 case UnitType::Number: |
952 case UnitType::Percentage: | 954 case UnitType::Percentage: |
953 case UnitType::Ems: | 955 case UnitType::Ems: |
956 case UnitType::QuirkyEms: | |
Timothy Loh
2015/09/02 01:59:03
should still be unreachable
sashab
2015/09/02 03:54:49
Done.
| |
954 case UnitType::Exs: | 957 case UnitType::Exs: |
955 case UnitType::Rems: | 958 case UnitType::Rems: |
956 case UnitType::Pixels: | 959 case UnitType::Pixels: |
957 case UnitType::Centimeters: | 960 case UnitType::Centimeters: |
958 case UnitType::DotsPerPixel: | 961 case UnitType::DotsPerPixel: |
959 case UnitType::DotsPerInch: | 962 case UnitType::DotsPerInch: |
960 case UnitType::DotsPerCentimeter: | 963 case UnitType::DotsPerCentimeter: |
961 case UnitType::Millimeters: | 964 case UnitType::Millimeters: |
962 case UnitType::Inches: | 965 case UnitType::Inches: |
963 case UnitType::Points: | 966 case UnitType::Points: |
(...skipping 23 matching lines...) Expand all Loading... | |
987 case UnitType::RGBColor: | 990 case UnitType::RGBColor: |
988 return m_value.rgbcolor == other.m_value.rgbcolor; | 991 return m_value.rgbcolor == other.m_value.rgbcolor; |
989 case UnitType::Calc: | 992 case UnitType::Calc: |
990 return m_value.calc && other.m_value.calc && m_value.calc->equals(*other .m_value.calc); | 993 return m_value.calc && other.m_value.calc && m_value.calc->equals(*other .m_value.calc); |
991 case UnitType::Shape: | 994 case UnitType::Shape: |
992 return m_value.shape && other.m_value.shape && m_value.shape->equals(*ot her.m_value.shape); | 995 return m_value.shape && other.m_value.shape && m_value.shape->equals(*ot her.m_value.shape); |
993 case UnitType::Integer: | 996 case UnitType::Integer: |
994 case UnitType::Chs: | 997 case UnitType::Chs: |
995 case UnitType::CalcPercentageWithNumber: | 998 case UnitType::CalcPercentageWithNumber: |
996 case UnitType::CalcPercentageWithLength: | 999 case UnitType::CalcPercentageWithLength: |
997 case UnitType::QuirkyEms: | |
998 return false; | 1000 return false; |
999 } | 1001 } |
1000 return false; | 1002 return false; |
1001 } | 1003 } |
1002 | 1004 |
1003 DEFINE_TRACE_AFTER_DISPATCH(CSSPrimitiveValue) | 1005 DEFINE_TRACE_AFTER_DISPATCH(CSSPrimitiveValue) |
1004 { | 1006 { |
1005 #if ENABLE(OILPAN) | 1007 #if ENABLE(OILPAN) |
1006 switch (type()) { | 1008 switch (type()) { |
1007 case UnitType::Calc: | 1009 case UnitType::Calc: |
1008 visitor->trace(m_value.calc); | 1010 visitor->trace(m_value.calc); |
1009 break; | 1011 break; |
1010 case UnitType::Shape: | 1012 case UnitType::Shape: |
1011 visitor->trace(m_value.shape); | 1013 visitor->trace(m_value.shape); |
1012 break; | 1014 break; |
1013 default: | 1015 default: |
1014 break; | 1016 break; |
1015 } | 1017 } |
1016 #endif | 1018 #endif |
1017 CSSValue::traceAfterDispatch(visitor); | 1019 CSSValue::traceAfterDispatch(visitor); |
1018 } | 1020 } |
1019 | 1021 |
1020 } // namespace blink | 1022 } // namespace blink |
OLD | NEW |