123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197 |
- /*
- * This file is part of the WebKit project.
- *
- * Copyright (C) 2006, 2008, 2013 Apple Computer, Inc.
- * Copyright (C) 2009 Kenneth Rohde Christiansen
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
- #ifndef RenderThemeWin_h
- #define RenderThemeWin_h
- #include "RenderTheme.h"
- #if WIN32
- typedef void* HANDLE;
- typedef struct HINSTANCE__* HINSTANCE;
- typedef HINSTANCE HMODULE;
- #endif
- namespace WebCore {
- struct ThemeData {
- ThemeData() :m_part(0), m_state(0), m_classicState(0) {}
- ThemeData(int part, int state)
- : m_part(part)
- , m_state(state)
- , m_classicState(0)
- { }
- unsigned m_part;
- unsigned m_state;
- unsigned m_classicState;
- };
- class RenderThemeWin : public RenderTheme {
- public:
- static PassRefPtr<RenderTheme> create();
- virtual String extraDefaultStyleSheet();
- virtual String extraQuirksStyleSheet();
- // A method asking if the theme's controls actually care about redrawing when hovered.
- virtual bool supportsHover(const RenderStyle*) const;
- virtual Color platformActiveSelectionBackgroundColor() const;
- virtual Color platformInactiveSelectionBackgroundColor() const;
- virtual Color platformActiveSelectionForegroundColor() const;
- virtual Color platformInactiveSelectionForegroundColor() const;
- // System fonts.
- virtual void systemFont(int propId, FontDescription&) const;
- virtual Color systemColor(int cssValueId) const;
- virtual bool paintCheckbox(RenderObject* o, const PaintInfo& i, const IntRect& r)
- { return paintButton(o, i, r); }
- virtual void setCheckboxSize(RenderStyle*) const;
- virtual bool paintRadio(RenderObject* o, const PaintInfo& i, const IntRect& r)
- { return paintButton(o, i, r); }
- virtual void setRadioSize(RenderStyle* style) const
- { return setCheckboxSize(style); }
- virtual bool paintButton(RenderObject*, const PaintInfo&, const IntRect&);
- virtual void adjustInnerSpinButtonStyle(StyleResolver*, RenderStyle*, Element*) const;
- virtual bool paintInnerSpinButton(RenderObject*, const PaintInfo&, const IntRect&);
- virtual bool paintTextField(RenderObject*, const PaintInfo&, const IntRect&);
- virtual bool paintTextArea(RenderObject* o, const PaintInfo& i, const IntRect& r)
- { return paintTextField(o, i, r); }
- virtual void adjustMenuListStyle(StyleResolver*, RenderStyle*, Element*) const;
- virtual bool paintMenuList(RenderObject*, const PaintInfo&, const IntRect&);
- virtual void adjustMenuListButtonStyle(StyleResolver*, RenderStyle*, Element*) const;
- virtual bool paintMenuListButton(RenderObject*, const PaintInfo&, const IntRect&);
- virtual bool paintSliderTrack(RenderObject* o, const PaintInfo& i, const IntRect& r);
- virtual bool paintSliderThumb(RenderObject* o, const PaintInfo& i, const IntRect& r);
- virtual void adjustSliderThumbSize(RenderStyle*, Element*) const;
- virtual bool popupOptionSupportsTextIndent() const { return true; }
- virtual void adjustSearchFieldStyle(StyleResolver*, RenderStyle*, Element*) const;
- virtual bool paintSearchField(RenderObject*, const PaintInfo&, const IntRect&);
- virtual void adjustSearchFieldCancelButtonStyle(StyleResolver*, RenderStyle*, Element*) const;
- virtual bool paintSearchFieldCancelButton(RenderObject*, const PaintInfo&, const IntRect&);
- virtual void adjustSearchFieldDecorationStyle(StyleResolver*, RenderStyle*, Element*) const;
- virtual bool paintSearchFieldDecoration(RenderObject*, const PaintInfo&, const IntRect&) { return false; }
- virtual void adjustSearchFieldResultsDecorationStyle(StyleResolver*, RenderStyle*, Element*) const;
- virtual bool paintSearchFieldResultsDecoration(RenderObject*, const PaintInfo&, const IntRect&);
- virtual void adjustSearchFieldResultsButtonStyle(StyleResolver*, RenderStyle*, Element*) const;
- virtual bool paintSearchFieldResultsButton(RenderObject*, const PaintInfo&, const IntRect&);
- virtual void themeChanged();
- virtual void adjustButtonStyle(StyleResolver*, RenderStyle* style, Element*) const { }
- virtual void adjustTextFieldStyle(StyleResolver*, RenderStyle* style, Element*) const { }
- virtual void adjustTextAreaStyle(StyleResolver*, RenderStyle* style, Element*) const { }
- static void setWebKitIsBeingUnloaded();
- virtual bool supportsFocusRing(const RenderStyle*) const;
- #if ENABLE(VIDEO)
- virtual String extraMediaControlsStyleSheet();
- #if ENABLE(FULLSCREEN_API)
- virtual String extraFullScreenStyleSheet();
- #endif
- virtual bool supportsClosedCaptioning() const;
- virtual bool paintMediaControlsBackground(RenderObject*, const PaintInfo&, const IntRect&);
- virtual bool paintMediaFullscreenButton(RenderObject*, const PaintInfo&, const IntRect&);
- virtual bool paintMediaMuteButton(RenderObject*, const PaintInfo&, const IntRect&);
- virtual bool paintMediaPlayButton(RenderObject*, const PaintInfo&, const IntRect&);
- virtual bool paintMediaRewindButton(RenderObject*, const PaintInfo&, const IntRect&);
- virtual bool paintMediaSeekBackButton(RenderObject*, const PaintInfo&, const IntRect&);
- virtual bool paintMediaSeekForwardButton(RenderObject*, const PaintInfo&, const IntRect&);
- virtual bool paintMediaSliderTrack(RenderObject*, const PaintInfo&, const IntRect&);
- virtual bool paintMediaSliderThumb(RenderObject*, const PaintInfo&, const IntRect&);
- virtual bool paintMediaVolumeSliderContainer(RenderObject*, const PaintInfo&, const IntRect&);
- virtual bool paintMediaVolumeSliderTrack(RenderObject*, const PaintInfo&, const IntRect&);
- virtual bool paintMediaVolumeSliderThumb(RenderObject*, const PaintInfo&, const IntRect&);
- virtual IntPoint volumeSliderOffsetFromMuteButton(RenderBox*, const IntSize&) const OVERRIDE;
- #endif
- #if ENABLE(METER_ELEMENT)
- virtual IntSize meterSizeForBounds(const RenderMeter*, const IntRect&) const OVERRIDE;
- virtual bool supportsMeter(ControlPart) const OVERRIDE;
- virtual void adjustMeterStyle(StyleResolver*, RenderStyle*, Element*) const OVERRIDE;
- virtual bool paintMeter(RenderObject*, const PaintInfo&, const IntRect&) OVERRIDE;
- #endif
- virtual bool shouldShowPlaceholderWhenFocused() const { return true; }
- private:
- enum ControlSubPart {
- None,
- SpinButtonDown,
- SpinButtonUp,
- };
- RenderThemeWin();
- virtual ~RenderThemeWin();
- void addIntrinsicMargins(RenderStyle*) const;
- void close();
- unsigned determineState(RenderObject*);
- unsigned determineClassicState(RenderObject*, ControlSubPart = None);
- unsigned determineSliderThumbState(RenderObject*);
- unsigned determineButtonState(RenderObject*);
- unsigned determineSpinButtonState(RenderObject*, ControlSubPart = None);
- bool supportsFocus(ControlPart) const;
- ThemeData getThemeData(RenderObject*, ControlSubPart = None);
- ThemeData getClassicThemeData(RenderObject* o, ControlSubPart = None);
- HANDLE buttonTheme() const;
- HANDLE textFieldTheme() const;
- HANDLE menuListTheme() const;
- HANDLE sliderTheme() const;
- HANDLE spinButtonTheme() const;
- HANDLE progressBarTheme() const;
- mutable HANDLE m_buttonTheme;
- mutable HANDLE m_textFieldTheme;
- mutable HANDLE m_menuListTheme;
- mutable HANDLE m_sliderTheme;
- mutable HANDLE m_spinButtonTheme;
- mutable HANDLE m_progressBarTheme;
- };
- };
- #endif
|