| /* libs/WebKitLib/WebKit/WebCore/rendering/RenderThemeAndroid.h |
| ** |
| ** Copyright 2006, The Android Open Source Project |
| ** |
| ** 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 RenderThemeAndroid_h |
| #define RenderThemeAndroid_h |
| |
| #include "RenderTheme.h" |
| |
| namespace WebCore { |
| |
| class PopupMenu; |
| class RenderSkinButton; |
| class RenderSkinRadio; |
| class RenderSkinCombo; |
| |
| struct ThemeData { |
| ThemeData() :m_part(0), m_state(0) {} |
| |
| unsigned m_part; |
| unsigned m_state; |
| }; |
| |
| class RenderThemeAndroid : public RenderTheme { |
| public: |
| RenderThemeAndroid(); |
| ~RenderThemeAndroid(); |
| |
| virtual bool stateChanged(RenderObject*, ControlState) const; |
| |
| virtual bool supportsFocusRing(const RenderStyle* style) const; |
| // A method asking if the theme's controls actually care about redrawing when hovered. |
| virtual bool supportsHover(const RenderStyle* style) const { return style->affectedByHoverRules(); } |
| |
| virtual short baselinePosition(const RenderObject*) const; |
| |
| virtual Color platformActiveSelectionBackgroundColor() const; |
| virtual Color platformInactiveSelectionBackgroundColor() const; |
| virtual Color platformActiveSelectionForegroundColor() const; |
| virtual Color platformInactiveSelectionForegroundColor() const; |
| virtual Color platformTextSearchHighlightColor() const; |
| |
| virtual void systemFont(int, WebCore::FontDescription&) const {} |
| |
| virtual int minimumMenuListSize(RenderStyle*) const { return 0; } |
| |
| protected: |
| virtual bool paintCheckbox(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r); |
| virtual void setCheckboxSize(RenderStyle* style) const; |
| |
| virtual bool paintRadio(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r); |
| virtual void setRadioSize(RenderStyle* style) const; |
| |
| virtual void adjustButtonStyle(CSSStyleSelector* selector, RenderStyle* style, WebCore::Element* e) const; |
| virtual bool paintButton(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r); |
| |
| virtual void adjustTextFieldStyle(CSSStyleSelector* selector, RenderStyle* style, WebCore::Element* e) const; |
| virtual bool paintTextField(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r); |
| |
| virtual void adjustTextAreaStyle(CSSStyleSelector* selector, RenderStyle* style, WebCore::Element* e) const; |
| virtual bool paintTextArea(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r); |
| |
| bool paintCombo(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& ir); |
| |
| virtual void adjustMenuListStyle(CSSStyleSelector* selector, RenderStyle* style, Element* e) const; |
| virtual bool paintMenuList(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r); |
| |
| virtual void adjustMenuListButtonStyle(CSSStyleSelector* selector, RenderStyle* style, Element* e) const; |
| virtual bool paintMenuListButton(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r); |
| |
| virtual void adjustSearchFieldStyle(CSSStyleSelector*, RenderStyle*, Element*) const; |
| virtual bool paintSearchField(RenderObject*, const RenderObject::PaintInfo&, const IntRect&); |
| |
| |
| private: |
| void addIntrinsicMargins(RenderStyle* style) const; |
| void close(); |
| |
| bool supportsFocus(EAppearance appearance); |
| // FIXME: There should be a way to use one RenderSkinRadio for both radio and checkbox |
| RenderSkinRadio* m_radio; |
| RenderSkinRadio* m_checkbox; |
| RenderSkinCombo* m_combo; |
| }; |
| |
| }; |
| |
| #endif |
| |