1231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block/*
2231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * This file is part of the WebKit project.
3231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block *
4231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * Copyright (C) 2009 Maxime Simon <simon.maxime@gmail.com>
5231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block *
6231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * All rights reserved.
7231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block *
8231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * This library is free software; you can redistribute it and/or
9231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * modify it under the terms of the GNU Library General Public
10231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * License as published by the Free Software Foundation; either
11231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * version 2 of the License, or (at your option) any later version.
12231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block *
13231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * This library is distributed in the hope that it will be useful,
14231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * but WITHOUT ANY WARRANTY; without even the implied warranty of
15231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * Library General Public License for more details.
17231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block *
18231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * You should have received a copy of the GNU Library General Public License
19231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * along with this library; see the file COPYING.LIB.  If not, write to
20231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block * Boston, MA 02111-1307, USA.
22231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block *
23231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block */
24231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
25231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#ifndef RenderThemeHaiku_h
26231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#define RenderThemeHaiku_h
27231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
28231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#include "RenderTheme.h"
29231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
30231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Blocknamespace WebCore {
31231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
32231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    class RenderThemeHaiku : public RenderTheme {
33231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    private:
34231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        RenderThemeHaiku();
35231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        virtual ~RenderThemeHaiku();
36231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
37231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    public:
38231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        static PassRefPtr<RenderTheme> create();
39231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
40231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        // A method asking if the theme's controls actually care about redrawing when hovered.
41231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        virtual bool supportsHover(const RenderStyle* style) const { return false; }
42231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
43231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        // A method asking if the theme is able to draw the focus ring.
44231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        virtual bool supportsFocusRing(const RenderStyle*) const;
45231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
46231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        // The platform selection color.
47231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        virtual Color platformActiveSelectionBackgroundColor() const;
48231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        virtual Color platformInactiveSelectionBackgroundColor() const;
49231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        virtual Color platformActiveSelectionForegroundColor() const;
50231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        virtual Color platformInactiveSelectionForegroundColor() const;
51231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
52231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        virtual Color platformTextSearchHighlightColor() const;
53231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
54231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        // System fonts.
55231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        virtual void systemFont(int propId, FontDescription&) const;
56231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
57231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    protected:
58ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block        virtual bool paintCheckbox(RenderObject*, const PaintInfo&, const IntRect&);
59231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        virtual void setCheckboxSize(RenderStyle*) const;
60231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
61ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block        virtual bool paintRadio(RenderObject*, const PaintInfo&, const IntRect&);
62231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        virtual void setRadioSize(RenderStyle*) const;
63231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
64231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block        virtual void adjustMenuListStyle(CSSStyleSelector*, RenderStyle*, Element*) const;
65ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block        virtual bool paintMenuList(RenderObject*, const PaintInfo&, const IntRect&);
66231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block    };
67231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
68231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block} // namespace WebCore
69231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block
70231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#endif // RenderThemeHaiku_h
71