| /* | |
| * Copyright 2014 Google Inc. All Rights Reserved. | |
| * | |
| * Licensed under the Apache License, Version 2.0 (the "License"); | |
| * you may not use this file except in compliance with the License. | |
| * You may obtain a copy of the License at | |
| * | |
| * http://www.apache.org/licenses/LICENSE-2.0 | |
| * | |
| * Unless required by applicable law or agreed to in writing, software | |
| * distributed under the License is distributed on an "AS IS" BASIS, | |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| * See the License for the specific language governing permissions and | |
| * limitations under the License. | |
| */ | |
| #ifndef COBALT_CSSOM_CSS_STYLE_DECLARATION_H_ | |
| #define COBALT_CSSOM_CSS_STYLE_DECLARATION_H_ | |
| #include <algorithm> | |
| #include <string> | |
| #include "base/basictypes.h" | |
| #include "base/memory/ref_counted.h" | |
| #include "base/memory/weak_ptr.h" | |
| #include "base/optional.h" | |
| #include "cobalt/cssom/property_definitions.h" | |
| #include "cobalt/script/exception_state.h" | |
| #include "cobalt/script/wrappable.h" | |
| namespace cobalt { | |
| namespace cssom { | |
| class CSSRule; | |
| class MutationObserver; | |
| // The CSSStyleDeclaration interface represents a CSS declaration block, | |
| // including its underlying state, where this underlying state depends | |
| // upon the source of the CSSStyleDeclaration instance. | |
| // https://www.w3.org/TR/2013/WD-cssom-20131205/#the-cssstyledeclaration-interface | |
| class CSSStyleDeclaration : public script::Wrappable { | |
| public: | |
| // Web API: CSSStyleDeclaration | |
| // | |
| std::string animation(script::ExceptionState* exception_state) const; | |
| void set_animation(const std::string& animation, | |
| script::ExceptionState* exception_state); | |
| std::string animation_delay(script::ExceptionState* exception_state) const; | |
| void set_animation_delay(const std::string& animation_delay, | |
| script::ExceptionState* exception_state); | |
| std::string animation_direction( | |
| script::ExceptionState* exception_state) const; | |
| void set_animation_direction(const std::string& animation_direction, | |
| script::ExceptionState* exception_state); | |
| std::string animation_duration(script::ExceptionState* exception_state) const; | |
| void set_animation_duration(const std::string& animation_duration, | |
| script::ExceptionState* exception_state); | |
| std::string animation_fill_mode( | |
| script::ExceptionState* exception_state) const; | |
| void set_animation_fill_mode(const std::string& animation_fill_mode, | |
| script::ExceptionState* exception_state); | |
| std::string animation_iteration_count( | |
| script::ExceptionState* exception_state) const; | |
| void set_animation_iteration_count( | |
| const std::string& animation_iteration_count, | |
| script::ExceptionState* exception_state); | |
| std::string animation_name(script::ExceptionState* exception_state) const; | |
| void set_animation_name(const std::string& animation_name, | |
| script::ExceptionState* exception_state); | |
| std::string animation_timing_function( | |
| script::ExceptionState* exception_state) const; | |
| void set_animation_timing_function( | |
| const std::string& animation_timing_function, | |
| script::ExceptionState* exception_state); | |
| std::string background(script::ExceptionState* exception_state) const; | |
| void set_background(const std::string& background, | |
| script::ExceptionState* exception_state); | |
| std::string background_color(script::ExceptionState* exception_state) const; | |
| void set_background_color(const std::string& background_color, | |
| script::ExceptionState* exception_state); | |
| std::string background_image(script::ExceptionState* exception_state) const; | |
| void set_background_image(const std::string& background_image, | |
| script::ExceptionState* exception_state); | |
| std::string background_position( | |
| script::ExceptionState* exception_state) const; | |
| void set_background_position(const std::string& background_position, | |
| script::ExceptionState* exception_state); | |
| std::string background_repeat(script::ExceptionState* exception_state) const; | |
| void set_background_repeat(const std::string& background_repeat, | |
| script::ExceptionState* exception_state); | |
| std::string background_size(script::ExceptionState* exception_state) const; | |
| void set_background_size(const std::string& background_size, | |
| script::ExceptionState* exception_state); | |
| std::string border(script::ExceptionState* exception_state) const; | |
| void set_border(const std::string& border, | |
| script::ExceptionState* exception_state); | |
| std::string border_bottom(script::ExceptionState* exception_state) const; | |
| void set_border_bottom(const std::string& border_bottom, | |
| script::ExceptionState* exception_state); | |
| std::string border_bottom_color( | |
| script::ExceptionState* exception_state) const; | |
| void set_border_bottom_color(const std::string& border_bottom_color, | |
| script::ExceptionState* exception_state); | |
| std::string border_bottom_style( | |
| script::ExceptionState* exception_state) const; | |
| void set_border_bottom_style(const std::string& border_bottom_style, | |
| script::ExceptionState* exception_state); | |
| std::string border_bottom_width( | |
| script::ExceptionState* exception_state) const; | |
| void set_border_bottom_width(const std::string& border_bottom_width, | |
| script::ExceptionState* exception_state); | |
| std::string border_color(script::ExceptionState* exception_state) const; | |
| void set_border_color(const std::string& border_color, | |
| script::ExceptionState* exception_state); | |
| std::string border_left(script::ExceptionState* exception_state) const; | |
| void set_border_left(const std::string& border_left, | |
| script::ExceptionState* exception_state); | |
| std::string border_left_color(script::ExceptionState* exception_state) const; | |
| void set_border_left_color(const std::string& border_left_color, | |
| script::ExceptionState* exception_state); | |
| std::string border_left_style(script::ExceptionState* exception_state) const; | |
| void set_border_left_style(const std::string& border_left_style, | |
| script::ExceptionState* exception_state); | |
| std::string border_left_width(script::ExceptionState* exception_state) const; | |
| void set_border_left_width(const std::string& border_left_width, | |
| script::ExceptionState* exception_state); | |
| std::string border_radius(script::ExceptionState* exception_state) const; | |
| void set_border_radius(const std::string& border_radius, | |
| script::ExceptionState* exception_state); | |
| std::string border_right(script::ExceptionState* exception_state) const; | |
| void set_border_right(const std::string& border_right, | |
| script::ExceptionState* exception_state); | |
| std::string border_right_color(script::ExceptionState* exception_state) const; | |
| void set_border_right_color(const std::string& border_right_color, | |
| script::ExceptionState* exception_state); | |
| std::string border_right_style(script::ExceptionState* exception_state) const; | |
| void set_border_right_style(const std::string& border_right_style, | |
| script::ExceptionState* exception_state); | |
| std::string border_right_width(script::ExceptionState* exception_state) const; | |
| void set_border_right_width(const std::string& border_right_width, | |
| script::ExceptionState* exception_state); | |
| std::string border_top(script::ExceptionState* exception_state) const; | |
| void set_border_top(const std::string& border_top, | |
| script::ExceptionState* exception_state); | |
| std::string border_top_color(script::ExceptionState* exception_state) const; | |
| void set_border_top_color(const std::string& border_top_color, | |
| script::ExceptionState* exception_state); | |
| std::string border_top_style(script::ExceptionState* exception_state) const; | |
| void set_border_top_style(const std::string& border_top_style, | |
| script::ExceptionState* exception_state); | |
| std::string border_top_width(script::ExceptionState* exception_state) const; | |
| void set_border_top_width(const std::string& border_top_width, | |
| script::ExceptionState* exception_state); | |
| std::string border_style(script::ExceptionState* exception_state) const; | |
| void set_border_style(const std::string& border_style, | |
| script::ExceptionState* exception_state); | |
| std::string border_width(script::ExceptionState* exception_state) const; | |
| void set_border_width(const std::string& border_width, | |
| script::ExceptionState* exception_state); | |
| std::string bottom(script::ExceptionState* exception_state) const; | |
| void set_bottom(const std::string& bottom, | |
| script::ExceptionState* exception_state); | |
| std::string box_shadow(script::ExceptionState* exception_state) const; | |
| void set_box_shadow(const std::string& box_shadow, | |
| script::ExceptionState* exception_state); | |
| std::string color(script::ExceptionState* exception_state) const; | |
| void set_color(const std::string& color, | |
| script::ExceptionState* exception_state); | |
| std::string content(script::ExceptionState* exception_state) const; | |
| void set_content(const std::string& content, | |
| script::ExceptionState* exception_state); | |
| std::string display(script::ExceptionState* exception_state) const; | |
| void set_display(const std::string& display, | |
| script::ExceptionState* exception_state); | |
| std::string font(script::ExceptionState* exception_state) const; | |
| void set_font(const std::string& font, | |
| script::ExceptionState* exception_state); | |
| std::string font_family(script::ExceptionState* exception_state) const; | |
| void set_font_family(const std::string& font_family, | |
| script::ExceptionState* exception_state); | |
| std::string font_size(script::ExceptionState* exception_state) const; | |
| void set_font_size(const std::string& font_size, | |
| script::ExceptionState* exception_state); | |
| std::string font_style(script::ExceptionState* exception_state) const; | |
| void set_font_style(const std::string& font_style, | |
| script::ExceptionState* exception_state); | |
| std::string font_weight(script::ExceptionState* exception_state) const; | |
| void set_font_weight(const std::string& font_weight, | |
| script::ExceptionState* exception_state); | |
| std::string height(script::ExceptionState* exception_state) const; | |
| void set_height(const std::string& height, | |
| script::ExceptionState* exception_state); | |
| std::string left(script::ExceptionState* exception_state) const; | |
| void set_left(const std::string& left, | |
| script::ExceptionState* exception_state); | |
| std::string line_height(script::ExceptionState* exception_state) const; | |
| void set_line_height(const std::string& line_height, | |
| script::ExceptionState* exception_state); | |
| std::string margin(script::ExceptionState* exception_state) const; | |
| void set_margin(const std::string& margin, | |
| script::ExceptionState* exception_state); | |
| std::string margin_bottom(script::ExceptionState* exception_state) const; | |
| void set_margin_bottom(const std::string& margin_bottom, | |
| script::ExceptionState* exception_state); | |
| std::string margin_left(script::ExceptionState* exception_state) const; | |
| void set_margin_left(const std::string& margin_left, | |
| script::ExceptionState* exception_state); | |
| std::string margin_right(script::ExceptionState* exception_state) const; | |
| void set_margin_right(const std::string& margin_right, | |
| script::ExceptionState* exception_state); | |
| std::string margin_top(script::ExceptionState* exception_state) const; | |
| void set_margin_top(const std::string& margin_top, | |
| script::ExceptionState* exception_state); | |
| std::string max_height(script::ExceptionState* exception_state) const; | |
| void set_max_height(const std::string& max_height, | |
| script::ExceptionState* exception_state); | |
| std::string max_width(script::ExceptionState* exception_state) const; | |
| void set_max_width(const std::string& max_width, | |
| script::ExceptionState* exception_state); | |
| std::string min_height(script::ExceptionState* exception_state) const; | |
| void set_min_height(const std::string& min_height, | |
| script::ExceptionState* exception_state); | |
| std::string min_width(script::ExceptionState* exception_state) const; | |
| void set_min_width(const std::string& min_width, | |
| script::ExceptionState* exception_state); | |
| std::string opacity(script::ExceptionState* exception_state) const; | |
| void set_opacity(const std::string& opacity, | |
| script::ExceptionState* exception_state); | |
| std::string overflow(script::ExceptionState* exception_state) const; | |
| void set_overflow(const std::string& overflow, | |
| script::ExceptionState* exception_state); | |
| std::string overflow_wrap(script::ExceptionState* exception_state) const; | |
| void set_overflow_wrap(const std::string& overflow_wrap, | |
| script::ExceptionState* exception_state); | |
| std::string padding(script::ExceptionState* exception_state) const; | |
| void set_padding(const std::string& padding, | |
| script::ExceptionState* exception_state); | |
| std::string padding_bottom(script::ExceptionState* exception_state) const; | |
| void set_padding_bottom(const std::string& padding_bottom, | |
| script::ExceptionState* exception_state); | |
| std::string padding_left(script::ExceptionState* exception_state) const; | |
| void set_padding_left(const std::string& padding_left, | |
| script::ExceptionState* exception_state); | |
| std::string padding_right(script::ExceptionState* exception_state) const; | |
| void set_padding_right(const std::string& padding_right, | |
| script::ExceptionState* exception_state); | |
| std::string padding_top(script::ExceptionState* exception_state) const; | |
| void set_padding_top(const std::string& padding_top, | |
| script::ExceptionState* exception_state); | |
| std::string position(script::ExceptionState* exception_state) const; | |
| void set_position(const std::string& position, | |
| script::ExceptionState* exception_state); | |
| std::string right(script::ExceptionState* exception_state) const; | |
| void set_right(const std::string& right, | |
| script::ExceptionState* exception_state); | |
| std::string text_align(script::ExceptionState* exception_state) const; | |
| void set_text_align(const std::string& text_align, | |
| script::ExceptionState* exception_state); | |
| std::string text_decoration(script::ExceptionState* exception_state) const; | |
| void set_text_decoration(const std::string& text_decoration, | |
| script::ExceptionState* exception_state); | |
| std::string text_decoration_color( | |
| script::ExceptionState* exception_state) const; | |
| void set_text_decoration_color(const std::string& text_decoration_color, | |
| script::ExceptionState* exception_state); | |
| std::string text_decoration_line( | |
| script::ExceptionState* exception_state) const; | |
| void set_text_decoration_line(const std::string& text_decoration_line, | |
| script::ExceptionState* exception_state); | |
| std::string text_indent(script::ExceptionState* exception_state) const; | |
| void set_text_indent(const std::string& text_indent, | |
| script::ExceptionState* exception_state); | |
| std::string text_overflow(script::ExceptionState* exception_state) const; | |
| void set_text_overflow(const std::string& text_overflow, | |
| script::ExceptionState* exception_state); | |
| std::string text_shadow(script::ExceptionState* exception_state) const; | |
| void set_text_shadow(const std::string& text_shadow, | |
| script::ExceptionState* exception_state); | |
| std::string text_transform(script::ExceptionState* exception_state) const; | |
| void set_text_transform(const std::string& text_transform, | |
| script::ExceptionState* exception_state); | |
| std::string top(script::ExceptionState* exception_state) const; | |
| void set_top(const std::string& top, script::ExceptionState* exception_state); | |
| std::string transform(script::ExceptionState* exception_state) const; | |
| void set_transform(const std::string& transform, | |
| script::ExceptionState* exception_state); | |
| std::string transform_origin(script::ExceptionState* exception_state) const; | |
| void set_transform_origin(const std::string& transform_origin, | |
| script::ExceptionState* exception_state); | |
| std::string transition(script::ExceptionState* exception_state) const; | |
| void set_transition(const std::string& transition, | |
| script::ExceptionState* exception_state); | |
| std::string transition_delay(script::ExceptionState* exception_state) const; | |
| void set_transition_delay(const std::string& transition_delay, | |
| script::ExceptionState* exception_state); | |
| std::string transition_duration( | |
| script::ExceptionState* exception_state) const; | |
| void set_transition_duration(const std::string& transition_duration, | |
| script::ExceptionState* exception_state); | |
| std::string transition_property( | |
| script::ExceptionState* exception_state) const; | |
| void set_transition_property(const std::string& transition_property, | |
| script::ExceptionState* exception_state); | |
| std::string transition_timing_function( | |
| script::ExceptionState* exception_state) const; | |
| void set_transition_timing_function( | |
| const std::string& transition_timing_function, | |
| script::ExceptionState* exception_state); | |
| std::string vertical_align(script::ExceptionState* exception_state) const; | |
| void set_vertical_align(const std::string& vertical_align, | |
| script::ExceptionState* exception_state); | |
| std::string visibility(script::ExceptionState* exception_state) const; | |
| void set_visibility(const std::string& visibility, | |
| script::ExceptionState* exception_state); | |
| std::string white_space(script::ExceptionState* exception_state) const; | |
| void set_white_space(const std::string& width, | |
| script::ExceptionState* exception_state); | |
| std::string width(script::ExceptionState* exception_state) const; | |
| void set_width(const std::string& width, | |
| script::ExceptionState* exception_state); | |
| std::string word_wrap(script::ExceptionState* exception_state) const; | |
| void set_word_wrap(const std::string& word_wrap, | |
| script::ExceptionState* exception_state); | |
| std::string z_index(script::ExceptionState* exception_state) const; | |
| void set_z_index(const std::string& z_index, | |
| script::ExceptionState* exception_state); | |
| virtual std::string css_text( | |
| script::ExceptionState* exception_state) const = 0; | |
| virtual void set_css_text(const std::string& css_text, | |
| script::ExceptionState* exception_state) = 0; | |
| virtual unsigned int length() const = 0; | |
| virtual base::optional<std::string> Item(unsigned int index) const = 0; | |
| std::string GetPropertyValue(const std::string& property_name); | |
| virtual void SetPropertyValue(const std::string& property_name, | |
| const std::string& property_value, | |
| script::ExceptionState* exception_state) = 0; | |
| // The parent rule is the CSS rule that the CSS declaration block is | |
| // associated with, if any, or null otherwise. | |
| // https://www.w3.org/TR/2013/WD-cssom-20131205/#css-declaration-block | |
| virtual scoped_refptr<CSSRule> parent_rule() const; | |
| DEFINE_WRAPPABLE_TYPE(CSSStyleDeclaration); | |
| protected: | |
| CSSStyleDeclaration() {} | |
| virtual ~CSSStyleDeclaration() {} | |
| private: | |
| virtual std::string GetDeclaredPropertyValueStringByKey( | |
| const PropertyKey key) const = 0; | |
| void SetPropertyValueStringByKey(PropertyKey key, | |
| const std::string& property_value, | |
| script::ExceptionState* exception_state); | |
| DISALLOW_COPY_AND_ASSIGN(CSSStyleDeclaration); | |
| }; | |
| } // namespace cssom | |
| } // namespace cobalt | |
| #endif // COBALT_CSSOM_CSS_STYLE_DECLARATION_H_ |