1 /* 2 * This file is part of the WebKit project. 3 * 4 * Copyright (C) 2006 Apple Computer, Inc. 5 * Copyright (C) 2006 Michael Emmel mike.emmel (at) gmail.com 6 * Copyright (C) 2007 Holger Hans Peter Freyther 7 * Copyright (C) 2007 Alp Toker <alp (at) atoker.com> 8 * Copyright (C) 2008, 2009 Google, Inc. 9 * All rights reserved. 10 * Copyright (C) 2009 Kenneth Rohde Christiansen 11 * 12 * This library is free software; you can redistribute it and/or 13 * modify it under the terms of the GNU Library General Public 14 * License as published by the Free Software Foundation; either 15 * version 2 of the License, or (at your option) any later version. 16 * 17 * This library is distributed in the hope that it will be useful, 18 * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 20 * Library General Public License for more details. 21 * 22 * You should have received a copy of the GNU Library General Public License 23 * along with this library; see the file COPYING.LIB. If not, write to 24 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 25 * Boston, MA 02110-1301, USA. 26 * 27 */ 28 29 #ifndef RenderThemeChromiumDefault_h 30 #define RenderThemeChromiumDefault_h 31 32 #include "core/rendering/RenderThemeChromiumSkia.h" 33 34 namespace WebCore { 35 36 class RenderThemeChromiumDefault : public RenderThemeChromiumSkia { 37 public: 38 static PassRefPtr<RenderTheme> create(); 39 virtual String extraDefaultStyleSheet(); 40 41 virtual Color systemColor(CSSValueID) const; 42 43 // A method asking if the control changes its tint when the window has focus or not. 44 virtual bool controlSupportsTints(const RenderObject*) const; 45 46 // List Box selection color 47 virtual Color activeListBoxSelectionBackgroundColor() const; 48 virtual Color activeListBoxSelectionForegroundColor() const; 49 virtual Color inactiveListBoxSelectionBackgroundColor() const; 50 virtual Color inactiveListBoxSelectionForegroundColor() const; 51 52 virtual Color platformActiveSelectionBackgroundColor() const; 53 virtual Color platformInactiveSelectionBackgroundColor() const; 54 virtual Color platformActiveSelectionForegroundColor() const; 55 virtual Color platformInactiveSelectionForegroundColor() const; 56 57 virtual IntSize sliderTickSize() const OVERRIDE; 58 virtual int sliderTickOffsetFromTrackCenter() const OVERRIDE; 59 virtual void adjustSliderThumbSize(RenderStyle*, Element*) const; 60 61 static void setCaretBlinkInterval(double); 62 virtual double caretBlinkIntervalInternal() const; 63 64 virtual bool paintCheckbox(RenderObject*, const PaintInfo&, const IntRect&); 65 virtual void setCheckboxSize(RenderStyle*) const; 66 67 virtual bool paintRadio(RenderObject*, const PaintInfo&, const IntRect&); 68 virtual void setRadioSize(RenderStyle*) const; 69 70 virtual bool paintButton(RenderObject*, const PaintInfo&, const IntRect&); 71 virtual bool paintTextField(RenderObject*, const PaintInfo&, const IntRect&); 72 virtual bool paintMenuList(RenderObject*, const PaintInfo&, const IntRect&); 73 virtual bool paintSliderTrack(RenderObject*, const PaintInfo&, const IntRect&); 74 virtual bool paintSliderThumb(RenderObject*, const PaintInfo&, const IntRect&); 75 76 virtual void adjustInnerSpinButtonStyle(RenderStyle*, Element*) const; 77 virtual bool paintInnerSpinButton(RenderObject*, const PaintInfo&, const IntRect&); 78 79 virtual bool popsMenuBySpaceOrReturn() const OVERRIDE { return true; } 80 81 virtual bool paintProgressBar(RenderObject*, const PaintInfo&, const IntRect&); 82 83 virtual bool shouldOpenPickerWithF4Key() const OVERRIDE; 84 85 static void setSelectionColors(unsigned activeBackgroundColor, unsigned activeForegroundColor, unsigned inactiveBackgroundColor, unsigned inactiveForegroundColor); 86 87 protected: 88 RenderThemeChromiumDefault(); 89 virtual ~RenderThemeChromiumDefault(); 90 91 private: 92 // A general method asking if any control tinting is supported at all. 93 virtual bool supportsControlTints() const; 94 95 static double m_caretBlinkInterval; 96 97 static unsigned m_activeSelectionBackgroundColor; 98 static unsigned m_activeSelectionForegroundColor; 99 static unsigned m_inactiveSelectionBackgroundColor; 100 static unsigned m_inactiveSelectionForegroundColor; 101 }; 102 103 } // namespace WebCore 104 105 #endif // RenderThemeChromiumDefault_h 106