18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright 2006, The Android Open Source Project 38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Redistribution and use in source and binary forms, with or without 58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modification, are permitted provided that the following conditions 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * are met: 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * * Redistributions of source code must retain the above copyright 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * notice, this list of conditions and the following disclaimer. 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * * Redistributions in binary form must reproduce the above copyright 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * notice, this list of conditions and the following disclaimer in the 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * documentation and/or other materials provided with the distribution. 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef RenderThemeAndroid_h 278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define RenderThemeAndroid_h 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 298c1b7730ddeb8d594bbbad19502ddb511d518ae4Ben Murdoch#include "PaintInfo.h" 308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "RenderTheme.h" 318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace WebCore { 338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstruct ThemeData { 350f03a62aac72e7a2e90983f8acc0ccd04de69289Feng Qian ThemeData() 360f03a62aac72e7a2e90983f8acc0ccd04de69289Feng Qian : m_part(0) 370f03a62aac72e7a2e90983f8acc0ccd04de69289Feng Qian , m_state(0) 380f03a62aac72e7a2e90983f8acc0ccd04de69289Feng Qian { 390f03a62aac72e7a2e90983f8acc0ccd04de69289Feng Qian } 408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned m_part; 428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project unsigned m_state; 438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}; 448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass RenderThemeAndroid : public RenderTheme { 468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectpublic: 473b2690e8ce3643c6dab24021df8946fde45fcfe8Andrei Popescu static PassRefPtr<RenderTheme> create(); 488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ~RenderThemeAndroid(); 498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool stateChanged(RenderObject*, ControlState) const; 51f404d29266675808fffe9d71b065bc03b555b58dJohn Reck 520f03a62aac72e7a2e90983f8acc0ccd04de69289Feng Qian virtual bool supportsFocusRing(const RenderStyle*) const; 538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // A method asking if the theme's controls actually care about redrawing when hovered. 548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual bool supportsHover(const RenderStyle* style) const { return style->affectedByHoverRules(); } 558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual int baselinePosition(const RenderObject*) const; 578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual Color platformActiveSelectionBackgroundColor() const; 598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual Color platformInactiveSelectionBackgroundColor() const; 608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual Color platformActiveSelectionForegroundColor() const; 618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual Color platformInactiveSelectionForegroundColor() const; 628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual Color platformTextSearchHighlightColor() const; 63ceeeab6161d7d8bf970ecf98affa4f4966df6f01John Reck virtual Color platformFocusRingColor() const; 64ce5633cace44e557954c70720fac3b47502a6ca5Leon Scroggins 65ce5633cace44e557954c70720fac3b47502a6ca5Leon Scroggins virtual Color platformActiveListBoxSelectionBackgroundColor() const; 66ce5633cace44e557954c70720fac3b47502a6ca5Leon Scroggins virtual Color platformInactiveListBoxSelectionBackgroundColor() const; 67ce5633cace44e557954c70720fac3b47502a6ca5Leon Scroggins virtual Color platformActiveListBoxSelectionForegroundColor() const; 68ce5633cace44e557954c70720fac3b47502a6ca5Leon Scroggins virtual Color platformInactiveListBoxSelectionForegroundColor() const; 69ce5633cace44e557954c70720fac3b47502a6ca5Leon Scroggins 7066c40fc863939bd103a5256eb48e944508725c53Victoria Lease virtual Color platformActiveTextSearchHighlightColor() const; 7166c40fc863939bd103a5256eb48e944508725c53Victoria Lease virtual Color platformInactiveTextSearchHighlightColor() const; 7266c40fc863939bd103a5256eb48e944508725c53Victoria Lease 738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void systemFont(int, WebCore::FontDescription&) const {} 748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual int minimumMenuListSize(RenderStyle*) const { return 0; } 768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectprotected: 78ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block virtual bool paintCheckbox(RenderObject*, const PaintInfo&, const IntRect&); 790f03a62aac72e7a2e90983f8acc0ccd04de69289Feng Qian virtual void setCheckboxSize(RenderStyle*) const; 808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 817f493d591dfd3492d5916ca301a4dbcd61554a06Nicolas Roard#if ENABLE(VIDEO) 827f493d591dfd3492d5916ca301a4dbcd61554a06Nicolas Roard virtual String extraMediaControlsStyleSheet(); 837f493d591dfd3492d5916ca301a4dbcd61554a06Nicolas Roard virtual void adjustSliderThumbSize(RenderObject* o) const; 847f493d591dfd3492d5916ca301a4dbcd61554a06Nicolas Roard virtual bool shouldRenderMediaControlPart(ControlPart part, Element* e); 85833c9ceaa300f52cf2d1b12a9b3482ad417a3c21Nicolas Roard virtual bool paintMediaFullscreenButton(RenderObject* o, const PaintInfo& paintInfo, const IntRect& r); 86833c9ceaa300f52cf2d1b12a9b3482ad417a3c21Nicolas Roard virtual bool paintMediaMuteButton(RenderObject* o, const PaintInfo& paintInfo, const IntRect& r); 87833c9ceaa300f52cf2d1b12a9b3482ad417a3c21Nicolas Roard virtual bool paintMediaPlayButton(RenderObject* o, const PaintInfo& paintInfo, const IntRect& r); 88833c9ceaa300f52cf2d1b12a9b3482ad417a3c21Nicolas Roard virtual bool paintMediaSeekBackButton(RenderObject* o, const PaintInfo& paintInfo, const IntRect& r); 89833c9ceaa300f52cf2d1b12a9b3482ad417a3c21Nicolas Roard virtual bool paintMediaSeekForwardButton(RenderObject* o, const PaintInfo& paintInfo, const IntRect& r); 90833c9ceaa300f52cf2d1b12a9b3482ad417a3c21Nicolas Roard virtual bool paintMediaSliderTrack(RenderObject* o, const PaintInfo& paintInfo, const IntRect& r); 91833c9ceaa300f52cf2d1b12a9b3482ad417a3c21Nicolas Roard virtual bool paintMediaSliderThumb(RenderObject* o, const PaintInfo& paintInfo, const IntRect& r); 929130a2f8733ef12edb2608a84469ddc461bed1f6Steve Block virtual bool paintMediaControlsBackground(RenderObject* object, const PaintInfo& paintInfo, const IntRect& rect); 93833c9ceaa300f52cf2d1b12a9b3482ad417a3c21Nicolas Roard virtual double mediaControlsFadeInDuration() { return 0.5; } 94833c9ceaa300f52cf2d1b12a9b3482ad417a3c21Nicolas Roard virtual double mediaControlsFadeOutDuration() { return 0.5; } 957f493d591dfd3492d5916ca301a4dbcd61554a06Nicolas Roard#endif 967f493d591dfd3492d5916ca301a4dbcd61554a06Nicolas Roard 97ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block virtual bool paintRadio(RenderObject*, const PaintInfo&, const IntRect&); 980f03a62aac72e7a2e90983f8acc0ccd04de69289Feng Qian virtual void setRadioSize(RenderStyle*) const; 998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1000f03a62aac72e7a2e90983f8acc0ccd04de69289Feng Qian virtual void adjustButtonStyle(CSSStyleSelector*, RenderStyle*, WebCore::Element*) const; 101ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block virtual bool paintButton(RenderObject*, const PaintInfo&, const IntRect&); 1028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1030f03a62aac72e7a2e90983f8acc0ccd04de69289Feng Qian virtual void adjustTextFieldStyle(CSSStyleSelector*, RenderStyle*, WebCore::Element*) const; 104ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block virtual bool paintTextField(RenderObject*, const PaintInfo&, const IntRect&); 1058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1060f03a62aac72e7a2e90983f8acc0ccd04de69289Feng Qian virtual void adjustTextAreaStyle(CSSStyleSelector*, RenderStyle*, WebCore::Element*) const; 107ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block virtual bool paintTextArea(RenderObject*, const PaintInfo&, const IntRect&); 1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 109ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block bool paintCombo(RenderObject*, const PaintInfo&, const IntRect&); 1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1110f03a62aac72e7a2e90983f8acc0ccd04de69289Feng Qian virtual void adjustListboxStyle(CSSStyleSelector*, RenderStyle*, Element*) const; 1120f03a62aac72e7a2e90983f8acc0ccd04de69289Feng Qian virtual void adjustMenuListStyle(CSSStyleSelector*, RenderStyle*, Element*) const; 113ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block virtual bool paintMenuList(RenderObject*, const PaintInfo&, const IntRect&); 1148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1150f03a62aac72e7a2e90983f8acc0ccd04de69289Feng Qian virtual void adjustMenuListButtonStyle(CSSStyleSelector*, RenderStyle*, Element*) const; 116ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block virtual bool paintMenuListButton(RenderObject*, const PaintInfo&, const IntRect&); 1178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void adjustSearchFieldStyle(CSSStyleSelector*, RenderStyle*, Element*) const; 119ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block virtual bool paintSearchField(RenderObject*, const PaintInfo&, const IntRect&); 1208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 121ab116239e825f4571a4665cee1f3cf92fd8d304cGeorge Mount virtual bool paintSliderTrack(RenderObject*, const PaintInfo&, const IntRect&); 122ab116239e825f4571a4665cee1f3cf92fd8d304cGeorge Mount virtual bool paintSliderThumb(RenderObject*, const PaintInfo&, const IntRect&); 123ab116239e825f4571a4665cee1f3cf92fd8d304cGeorge Mount 1248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectprivate: 1253b2690e8ce3643c6dab24021df8946fde45fcfe8Andrei Popescu RenderThemeAndroid(); 1260f03a62aac72e7a2e90983f8acc0ccd04de69289Feng Qian void addIntrinsicMargins(RenderStyle*) const; 1278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project void close(); 1288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1290f03a62aac72e7a2e90983f8acc0ccd04de69289Feng Qian bool supportsFocus(ControlPart); 1303b2690e8ce3643c6dab24021df8946fde45fcfe8Andrei Popescu friend RenderTheme* theme(); 1318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}; 1328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} // namespace WebCore 1348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif // RenderThemeAndroid_h 136