Home | History | Annotate | Download | only in css
      1 /*
      2  * Copyright (C) 2012 Intel Corporation. All rights reserved.
      3  * Copyright (C) 2012 Apple Inc. All rights reserved.
      4  *
      5  * Redistribution and use in source and binary forms, with or without
      6  * modification, are permitted provided that the following conditions
      7  * are met:
      8  *
      9  * 1. Redistributions of source code must retain the above
     10  *    copyright notice, this list of conditions and the following
     11  *    disclaimer.
     12  * 2. Redistributions in binary form must reproduce the above
     13  *    copyright notice, this list of conditions and the following
     14  *    disclaimer in the documentation and/or other materials
     15  *    provided with the distribution.
     16  *
     17  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AS IS AND ANY
     18  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     19  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     20  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE
     21  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
     22  * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     23  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
     24  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     25  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
     26  * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
     27  * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     28  * SUCH DAMAGE.
     29  */
     30 
     31 #ifndef CSSViewportRule_h
     32 #define CSSViewportRule_h
     33 
     34 #include "core/css/CSSRule.h"
     35 
     36 namespace WebCore {
     37 
     38 class CSSStyleDeclaration;
     39 class StyleRuleViewport;
     40 class StyleRuleCSSStyleDeclaration;
     41 
     42 class CSSViewportRule: public CSSRule {
     43 public:
     44     static PassRefPtr<CSSViewportRule> create(StyleRuleViewport* viewportRule, CSSStyleSheet* sheet)
     45     {
     46         return adoptRef(new CSSViewportRule(viewportRule, sheet));
     47     }
     48     ~CSSViewportRule();
     49 
     50     virtual CSSRule::Type type() const OVERRIDE { return VIEWPORT_RULE; }
     51     virtual String cssText() const OVERRIDE;
     52     virtual void reattach(StyleRuleBase*) OVERRIDE;
     53 
     54     CSSStyleDeclaration* style() const;
     55 
     56 private:
     57     CSSViewportRule(StyleRuleViewport*, CSSStyleSheet*);
     58 
     59     RefPtr<StyleRuleViewport> m_viewportRule;
     60     mutable RefPtr<StyleRuleCSSStyleDeclaration> m_propertiesCSSOMWrapper;
     61 };
     62 
     63 } // namespace WebCore
     64 
     65 #endif // CSSViewportRule_h
     66