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@gmail.com 6 * Copyright (C) 2007 Holger Hans Peter Freyther 7 * Copyright (C) 2007 Alp Toker <alp@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 RenderThemeChromiumLinux_h 30#define RenderThemeChromiumLinux_h 31 32#include "RenderThemeChromiumSkia.h" 33 34namespace WebCore { 35 36 class RenderThemeChromiumLinux : public RenderThemeChromiumSkia { 37 public: 38 static PassRefPtr<RenderTheme> create(); 39 virtual String extraDefaultStyleSheet(); 40 41 virtual Color systemColor(int cssValidId) 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 void adjustSliderThumbSize(RenderObject*) const; 58 59 static void setCaretBlinkInterval(double interval); 60 virtual double caretBlinkIntervalInternal() const; 61 62 virtual bool paintCheckbox(RenderObject*, const PaintInfo&, const IntRect&); 63 virtual void setCheckboxSize(RenderStyle*) const; 64 65 virtual bool paintRadio(RenderObject*, const PaintInfo&, const IntRect&); 66 virtual void setRadioSize(RenderStyle*) const; 67 68 virtual bool paintButton(RenderObject*, const PaintInfo&, const IntRect&); 69 virtual bool paintTextField(RenderObject*, const PaintInfo&, const IntRect&); 70 virtual bool paintMenuList(RenderObject*, const PaintInfo&, const IntRect&); 71 virtual bool paintSliderTrack(RenderObject*, const PaintInfo&, const IntRect&); 72 virtual bool paintSliderThumb(RenderObject*, const PaintInfo&, const IntRect&); 73 74 virtual void adjustInnerSpinButtonStyle(CSSStyleSelector*, RenderStyle*, Element*) const; 75 virtual bool paintInnerSpinButton(RenderObject*, const PaintInfo&, const IntRect&); 76 77#if ENABLE(PROGRESS_TAG) 78 virtual bool paintProgressBar(RenderObject*, const PaintInfo&, const IntRect&); 79#endif 80 81 static void setSelectionColors(unsigned activeBackgroundColor, 82 unsigned activeForegroundColor, 83 unsigned inactiveBackgroundColor, 84 unsigned inactiveForegroundColor); 85 86 private: 87 RenderThemeChromiumLinux(); 88 virtual ~RenderThemeChromiumLinux(); 89 90 // A general method asking if any control tinting is supported at all. 91 virtual bool supportsControlTints() const; 92 93 static double m_caretBlinkInterval; 94 95 static unsigned m_activeSelectionBackgroundColor; 96 static unsigned m_activeSelectionForegroundColor; 97 static unsigned m_inactiveSelectionBackgroundColor; 98 static unsigned m_inactiveSelectionForegroundColor; 99 }; 100 101} // namespace WebCore 102 103#endif // RenderThemeChromiumLinux_h 104