1926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)/*
2926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * This file is part of the theme implementation for form controls in WebCore.
3926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) *
453e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) * Copyright (C) 2005 Apple Computer, Inc.
553e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles) * Copyright (C) 2008, 2009 Google, Inc.
6926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) *
7926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * This library is free software; you can redistribute it and/or
8926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * modify it under the terms of the GNU Library General Public
9926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * License as published by the Free Software Foundation; either
10926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * version 2 of the License, or (at your option) any later version.
11926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) *
12926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * This library is distributed in the hope that it will be useful,
13926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * but WITHOUT ANY WARRANTY; without even the implied warranty of
14926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * Library General Public License for more details.
16926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) *
17926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * You should have received a copy of the GNU Library General Public License
18926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * along with this library; see the file COPYING.LIB.  If not, write to
19926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) * Boston, MA 02110-1301, USA.
21926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) *
22926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles) */
23926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
2453e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#ifndef RenderThemeChromiumMac_h
2553e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#define RenderThemeChromiumMac_h
2653e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)
2753e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#import "core/rendering/RenderTheme.h"
2893ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)#import "wtf/HashMap.h"
2993ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)#import "wtf/RetainPtr.h"
30926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
31926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)OBJC_CLASS WebCoreRenderThemeNotificationObserver;
32926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
33c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink {
34926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
3509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)class RenderThemeChromiumMac FINAL : public RenderTheme {
36926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)public:
3753e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)    static PassRefPtr<RenderTheme> create();
3853e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)
399e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles)    virtual void adjustPaintInvalidationRect(const RenderObject*, IntRect&) OVERRIDE;
40926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
415d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles)    virtual bool isControlStyled(const RenderStyle*, const CachedUAStyle*) const OVERRIDE;
42926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
43e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch    virtual Color platformActiveSelectionBackgroundColor() const OVERRIDE;
44e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch    virtual Color platformInactiveSelectionBackgroundColor() const OVERRIDE;
4509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual Color platformActiveSelectionForegroundColor() const OVERRIDE;
46e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch    virtual Color platformActiveListBoxSelectionBackgroundColor() const OVERRIDE;
47e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch    virtual Color platformActiveListBoxSelectionForegroundColor() const OVERRIDE;
48e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch    virtual Color platformInactiveListBoxSelectionBackgroundColor() const OVERRIDE;
49e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch    virtual Color platformInactiveListBoxSelectionForegroundColor() const OVERRIDE;
50e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch    virtual Color platformFocusRingColor() const OVERRIDE;
51926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
52197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    virtual ScrollbarControlSize scrollbarControlSizeForPart(ControlPart part) OVERRIDE { return part == ListboxPart ? SmallScrollbar : RegularScrollbar; }
53926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
54e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch    virtual void platformColorsDidChange() OVERRIDE;
55926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
56926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    // System fonts.
57e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch    virtual void systemFont(CSSValueID, FontDescription&) const OVERRIDE;
58926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
59e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch    virtual int minimumMenuListSize(RenderStyle*) const OVERRIDE;
60926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
61e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch    virtual void adjustSliderThumbSize(RenderStyle*, Element*) const OVERRIDE;
62926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
63926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    virtual IntSize sliderTickSize() const OVERRIDE;
64926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    virtual int sliderTickOffsetFromTrackCenter() const OVERRIDE;
65926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
66e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch    virtual int popupInternalPaddingLeft(RenderStyle*) const OVERRIDE;
67e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch    virtual int popupInternalPaddingRight(RenderStyle*) const OVERRIDE;
68e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch    virtual int popupInternalPaddingTop(RenderStyle*) const OVERRIDE;
69e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch    virtual int popupInternalPaddingBottom(RenderStyle*) const OVERRIDE;
70926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
71926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    virtual bool paintCapsLockIndicator(RenderObject*, const PaintInfo&, const IntRect&) OVERRIDE;
72926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
73926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    virtual bool popsMenuByArrowKeys() const OVERRIDE { return true; }
74197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch    virtual bool popsMenuBySpaceKey() const OVERRIDE FINAL { return true; }
75926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
76926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    virtual IntSize meterSizeForBounds(const RenderMeter*, const IntRect&) const OVERRIDE;
77e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch    virtual bool paintMeter(RenderObject*, const PaintInfo&, const IntRect&) OVERRIDE;
78e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch    virtual bool supportsMeter(ControlPart) const OVERRIDE;
79926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
80926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    // Returns the repeat interval of the animation for the progress bar.
81e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch    virtual double animationRepeatIntervalForProgressBar(RenderProgress*) const OVERRIDE;
82926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    // Returns the duration of the animation for the progress bar.
83e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch    virtual double animationDurationForProgressBar(RenderProgress*) const OVERRIDE;
84926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
85e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch    virtual Color systemColor(CSSValueID) const OVERRIDE;
86926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
8709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual bool supportsSelectionForegroundColors() const OVERRIDE { return false; }
8809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)
897242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci    virtual bool isModalColorChooser() const { return false; }
907242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci
91926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)protected:
9253e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)    RenderThemeChromiumMac();
9353e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)    virtual ~RenderThemeChromiumMac();
94926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
9509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual bool paintTextField(RenderObject*, const PaintInfo&, const IntRect&) OVERRIDE;
96926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
9709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual bool paintTextArea(RenderObject*, const PaintInfo&, const IntRect&) OVERRIDE;
98926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
9909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual bool paintMenuList(RenderObject*, const PaintInfo&, const IntRect&) OVERRIDE;
10009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual void adjustMenuListStyle(RenderStyle*, Element*) const OVERRIDE;
101926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
10209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual bool paintMenuListButton(RenderObject*, const PaintInfo&, const IntRect&) OVERRIDE;
10309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual void adjustMenuListButtonStyle(RenderStyle*, Element*) const OVERRIDE;
104926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
10509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual bool paintProgressBar(RenderObject*, const PaintInfo&, const IntRect&) OVERRIDE;
106926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
10709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual bool paintSliderTrack(RenderObject*, const PaintInfo&, const IntRect&) OVERRIDE;
108926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
10909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual bool paintSliderThumb(RenderObject*, const PaintInfo&, const IntRect&) OVERRIDE;
110926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
11109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual bool paintSearchField(RenderObject*, const PaintInfo&, const IntRect&) OVERRIDE;
11209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual void adjustSearchFieldStyle(RenderStyle*, Element*) const OVERRIDE;
113926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
11409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual void adjustSearchFieldCancelButtonStyle(RenderStyle*, Element*) const OVERRIDE;
11509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual bool paintSearchFieldCancelButton(RenderObject*, const PaintInfo&, const IntRect&) OVERRIDE;
116926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
11709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual void adjustSearchFieldDecorationStyle(RenderStyle*, Element*) const OVERRIDE;
11809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual bool paintSearchFieldDecoration(RenderObject*, const PaintInfo&, const IntRect&) OVERRIDE;
119926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
12009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual void adjustSearchFieldResultsDecorationStyle(RenderStyle*, Element*) const OVERRIDE;
12109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual bool paintSearchFieldResultsDecoration(RenderObject*, const PaintInfo&, const IntRect&) OVERRIDE;
122926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
123926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)private:
1241e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)    virtual String fileListNameForWidth(Locale&, const FileList*, const Font&, int width) const OVERRIDE;
125926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
126926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    FloatRect convertToPaintingRect(const RenderObject* inputRenderer, const RenderObject* partRenderer, const FloatRect& inputRect, const IntRect&) const;
127926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
128926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    // Get the control size based off the font. Used by some of the controls (like buttons).
129926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    NSControlSize controlSizeForFont(RenderStyle*) const;
130926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    NSControlSize controlSizeForSystemFont(RenderStyle*) const;
131926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    void setControlSize(NSCell*, const IntSize* sizes, const IntSize& minSize, float zoomLevel = 1.0f);
132926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    void setSizeFromFont(RenderStyle*, const IntSize* sizes) const;
133926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    IntSize sizeForFont(RenderStyle*, const IntSize* sizes) const;
134926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    IntSize sizeForSystemFont(RenderStyle*, const IntSize* sizes) const;
1355267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)    void setFontFromControlSize(RenderStyle*, NSControlSize) const;
136926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
137926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    void updateCheckedState(NSCell*, const RenderObject*);
138926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    void updateEnabledState(NSCell*, const RenderObject*);
139926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    void updateFocusedState(NSCell*, const RenderObject*);
140926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    void updatePressedState(NSCell*, const RenderObject*);
141926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
142926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    // Helpers for adjusting appearance and for painting
143926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
144926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    void setPopupButtonCellState(const RenderObject*, const IntRect&);
145926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    const IntSize* popupButtonSizes() const;
146926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    const int* popupButtonMargins() const;
147926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    const int* popupButtonPadding(NSControlSize) const;
148926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    const IntSize* menuListSizes() const;
149926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
150926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    const IntSize* searchFieldSizes() const;
151926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    const IntSize* cancelButtonSizes() const;
152926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    const IntSize* resultsButtonSizes() const;
153926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    void setSearchCellState(RenderObject*, const IntRect&);
154926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    void setSearchFieldSize(RenderStyle*) const;
155926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
156926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    NSPopUpButtonCell* popupButton() const;
157926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    NSSearchFieldCell* search() const;
158926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    NSTextFieldCell* textField() const;
159926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
160926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    NSLevelIndicatorStyle levelIndicatorStyleFor(ControlPart) const;
161926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    NSLevelIndicatorCell* levelIndicatorFor(const RenderMeter*) const;
162926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
163926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    int minimumProgressBarHeight(RenderStyle*) const;
164926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    const IntSize* progressBarSizes() const;
165926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    const int* progressBarMargins(NSControlSize) const;
16653e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)
16753e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)protected:
16853e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)    virtual void adjustMediaSliderThumbSize(RenderStyle*) const;
16909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual bool paintMediaPlayButton(RenderObject*, const PaintInfo&, const IntRect&) OVERRIDE;
170f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu    virtual bool paintMediaOverlayPlayButton(RenderObject*, const PaintInfo&, const IntRect&) OVERRIDE;
17109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual bool paintMediaMuteButton(RenderObject*, const PaintInfo&, const IntRect&) OVERRIDE;
17209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual bool paintMediaSliderTrack(RenderObject*, const PaintInfo&, const IntRect&) OVERRIDE;
17309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual String extraFullScreenStyleSheet() OVERRIDE;
17409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)
17509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual bool paintMediaSliderThumb(RenderObject*, const PaintInfo&, const IntRect&) OVERRIDE;
17609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual bool paintMediaVolumeSliderContainer(RenderObject*, const PaintInfo&, const IntRect&) OVERRIDE;
17709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual bool paintMediaVolumeSliderTrack(RenderObject*, const PaintInfo&, const IntRect&) OVERRIDE;
17809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual bool paintMediaVolumeSliderThumb(RenderObject*, const PaintInfo&, const IntRect&) OVERRIDE;
17909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual String formatMediaControlsTime(float time) const OVERRIDE;
18009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual String formatMediaControlsCurrentTime(float currentTime, float duration) const OVERRIDE;
18109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual bool paintMediaFullscreenButton(RenderObject*, const PaintInfo&, const IntRect&) OVERRIDE;
18209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual bool paintMediaToggleClosedCaptionsButton(RenderObject*, const PaintInfo&, const IntRect&) OVERRIDE;
18353e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)
18453e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)    // Controls color values returned from platformFocusRingColor(). systemColor() will be used when false.
18553e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)    bool usesTestModeFocusRingColor() const;
18653e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)    // A view associated to the contained document. Subclasses may not have such a view and return a fake.
18753e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)    NSView* documentViewFor(RenderObject*) const;
188926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
18993ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)    virtual bool shouldUseFallbackTheme(RenderStyle*) const OVERRIDE;
19093ac45cfc74041c8ae536ce58a9534d46db2024eTorne (Richard Coles)
191926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)private:
19253e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)    virtual void updateActiveState(NSCell*, const RenderObject*);
19309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)    virtual String extraDefaultStyleSheet() OVERRIDE;
19453e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)    virtual bool shouldShowPlaceholderWhenFocused() const OVERRIDE;
19553e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)
196926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    mutable RetainPtr<NSPopUpButtonCell> m_popupButton;
197926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    mutable RetainPtr<NSSearchFieldCell> m_search;
198926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    mutable RetainPtr<NSMenu> m_searchMenuTemplate;
199926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    mutable RetainPtr<NSLevelIndicatorCell> m_levelIndicator;
200926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    mutable RetainPtr<NSTextFieldCell> m_textField;
201926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
202926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    mutable HashMap<int, RGBA32> m_systemColorCache;
203926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
204926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)    RetainPtr<WebCoreRenderThemeNotificationObserver> m_notificationObserver;
205926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)};
206926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
207c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)} // namespace blink
208926b001d589ce2f10facb93dd4b87578ea35a855Torne (Richard Coles)
20953e740f4a82e17f3ae59772501622dc354e42336Torne (Richard Coles)#endif // RenderThemeChromiumMac_h
210