source: webkit/trunk/Source/WebCore/css/CSSKeyframeRule.h

Last change on this file was 286916, checked in by Antti Koivisto, 3 years ago

Remove redundant StyleRule::Type enum
https://bugs.webkit.org/show_bug.cgi?id=234156

Reviewed by Alan Bujtas.

Source/WebCore:

Remove redundant CSSRule::STYLE_RULE etc enum values and just use StyleRuleType enum class.

  • bindings/js/JSCSSRuleCustom.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/CodeGenerator.pm:

(GenerateCompileTimeCheckForEnumsIfNeeded):

Add 'ConstantsEnum' attribute to generate static_asserts for constants that match an enum class.

  • bindings/scripts/IDLAttributes.json:
  • css/CSSCounterStyleRule.h:
  • css/CSSFontFaceRule.h:
  • css/CSSFontPaletteValuesRule.h:
  • css/CSSImportRule.h:
  • css/CSSKeyframeRule.h:
  • css/CSSKeyframesRule.h:
  • css/CSSLayerBlockRule.h:
  • css/CSSLayerStatementRule.h:
  • css/CSSMediaRule.h:
  • css/CSSNamespaceRule.h:
  • css/CSSPageRule.h:
  • css/CSSRule.cpp:
  • css/CSSRule.h:

(WebCore::CSSRule::typeForBindings const):

  • css/CSSRule.idl:
  • css/CSSStyleRule.h:
  • css/CSSSupportsRule.h:
  • css/CSSUnknownRule.h:
  • css/StyleRuleType.h:
  • style/InspectorCSSOMWrappers.cpp:

(WebCore::Style::InspectorCSSOMWrappers::collect):

Source/WebKitLegacy/mac:

  • DOM/DOMCSS.mm:

(kitClass):

  • DOM/DOMCSSRule.mm:

(-[DOMCSSRule type]):

  • Property svn:eol-style set to native
File size: 3.0 KB
Line 
1/*
2 * Copyright (C) 2007, 2008, 2012, 2014 Apple Inc. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */
25
26#pragma once
27
28#include "CSSRule.h"
29#include "StyleProperties.h"
30#include "StyleRule.h"
31
32namespace WebCore {
33
34class CSSStyleDeclaration;
35class StyleRuleCSSStyleDeclaration;
36class CSSKeyframesRule;
37
38class StyleRuleKeyframe final : public StyleRuleBase {
39public:
40 static Ref<StyleRuleKeyframe> create(Ref<StyleProperties>&&);
41 static Ref<StyleRuleKeyframe> create(Vector<double>&& keys, Ref<StyleProperties>&&);
42 ~StyleRuleKeyframe();
43
44 String keyText() const;
45 bool setKeyText(const String&);
46 void setKey(double key)
47 {
48 ASSERT(m_keys.isEmpty());
49 m_keys.clear();
50 m_keys.append(key);
51 }
52
53 const Vector<double>& keys() const { return m_keys; };
54
55 const StyleProperties& properties() const { return m_properties; }
56 MutableStyleProperties& mutableProperties();
57
58 String cssText() const;
59
60private:
61 explicit StyleRuleKeyframe(Ref<StyleProperties>&&);
62 StyleRuleKeyframe(Vector<double>&&, Ref<StyleProperties>&&);
63
64 Ref<StyleProperties> m_properties;
65 Vector<double> m_keys;
66};
67
68class CSSKeyframeRule final : public CSSRule {
69public:
70 virtual ~CSSKeyframeRule();
71
72 String cssText() const final { return m_keyframe->cssText(); }
73 void reattach(StyleRuleBase&) final;
74
75 String keyText() const { return m_keyframe->keyText(); }
76 void setKeyText(const String& text) { m_keyframe->setKeyText(text); }
77
78 CSSStyleDeclaration& style();
79
80private:
81 CSSKeyframeRule(StyleRuleKeyframe&, CSSKeyframesRule* parent);
82
83 StyleRuleType styleRuleType() const final { return StyleRuleType::Keyframe; }
84
85 Ref<StyleRuleKeyframe> m_keyframe;
86 mutable RefPtr<StyleRuleCSSStyleDeclaration> m_propertiesCSSOMWrapper;
87
88 friend class CSSKeyframesRule;
89};
90
91} // namespace WebCore
Note: See TracBrowser for help on using the repository browser.