summaryrefslogtreecommitdiff
path: root/Source/WebCore/rendering/RenderThemeChromiumDefault.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/rendering/RenderThemeChromiumDefault.cpp')
-rw-r--r--Source/WebCore/rendering/RenderThemeChromiumDefault.cpp389
1 files changed, 0 insertions, 389 deletions
diff --git a/Source/WebCore/rendering/RenderThemeChromiumDefault.cpp b/Source/WebCore/rendering/RenderThemeChromiumDefault.cpp
deleted file mode 100644
index d643729ad..000000000
--- a/Source/WebCore/rendering/RenderThemeChromiumDefault.cpp
+++ /dev/null
@@ -1,389 +0,0 @@
-/*
- * Copyright (C) 2007 Apple Inc.
- * Copyright (C) 2007 Alp Toker <alp@atoker.com>
- * Copyright (C) 2008 Collabora Ltd.
- * Copyright (C) 2008, 2009 Google 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.
- *
- */
-
-#include "config.h"
-#include "RenderThemeChromiumDefault.h"
-
-#include "CSSValueKeywords.h"
-#include "Color.h"
-#include "PaintInfo.h"
-#include "PlatformContextSkia.h"
-#include "RenderObject.h"
-#include "RenderProgress.h"
-#include "RenderSlider.h"
-#include "ScrollbarTheme.h"
-#include "UserAgentStyleSheets.h"
-#include <public/Platform.h>
-#include <public/WebRect.h>
-#include <public/default/WebThemeEngine.h>
-
-namespace WebCore {
-
-unsigned RenderThemeChromiumDefault::m_activeSelectionBackgroundColor =
- 0xff1e90ff;
-unsigned RenderThemeChromiumDefault::m_activeSelectionForegroundColor =
- Color::black;
-unsigned RenderThemeChromiumDefault::m_inactiveSelectionBackgroundColor =
- 0xffc8c8c8;
-unsigned RenderThemeChromiumDefault::m_inactiveSelectionForegroundColor =
- 0xff323232;
-
-double RenderThemeChromiumDefault::m_caretBlinkInterval;
-
-static const unsigned defaultButtonBackgroundColor = 0xffdddddd;
-
-static WebKit::WebThemeEngine::State getWebThemeState(const RenderTheme* theme, const RenderObject* o)
-{
- if (!theme->isEnabled(o))
- return WebKit::WebThemeEngine::StateDisabled;
- if (theme->isPressed(o))
- return WebKit::WebThemeEngine::StatePressed;
- if (theme->isHovered(o))
- return WebKit::WebThemeEngine::StateHover;
-
- return WebKit::WebThemeEngine::StateNormal;
-}
-
-PassRefPtr<RenderTheme> RenderThemeChromiumDefault::create()
-{
- return adoptRef(new RenderThemeChromiumDefault());
-}
-
-// RenderTheme::themeForPage for Android is defined in RenderThemeChromiumAndroid.cpp.
-#if !OS(ANDROID)
-PassRefPtr<RenderTheme> RenderTheme::themeForPage(Page* page)
-{
- static RenderTheme* rt = RenderThemeChromiumDefault::create().leakRef();
- return rt;
-}
-#endif
-
-RenderThemeChromiumDefault::RenderThemeChromiumDefault()
-{
- m_caretBlinkInterval = RenderTheme::caretBlinkInterval();
-}
-
-RenderThemeChromiumDefault::~RenderThemeChromiumDefault()
-{
-}
-
-Color RenderThemeChromiumDefault::systemColor(int cssValueId) const
-{
- static const Color defaultButtonGrayColor(0xffdddddd);
-
- if (cssValueId == CSSValueButtonface)
- return defaultButtonGrayColor;
- return RenderTheme::systemColor(cssValueId);
-}
-
-String RenderThemeChromiumDefault::extraDefaultStyleSheet()
-{
-#if !OS(WINDOWS)
- return RenderThemeChromiumSkia::extraDefaultStyleSheet() +
- String(themeChromiumLinuxUserAgentStyleSheet, sizeof(themeChromiumLinuxUserAgentStyleSheet));
-#else
- return RenderThemeChromiumSkia::extraDefaultStyleSheet();
-#endif
-}
-
-bool RenderThemeChromiumDefault::controlSupportsTints(const RenderObject* o) const
-{
- return isEnabled(o);
-}
-
-Color RenderThemeChromiumDefault::activeListBoxSelectionBackgroundColor() const
-{
- return Color(0x28, 0x28, 0x28);
-}
-
-Color RenderThemeChromiumDefault::activeListBoxSelectionForegroundColor() const
-{
- return Color::black;
-}
-
-Color RenderThemeChromiumDefault::inactiveListBoxSelectionBackgroundColor() const
-{
- return Color(0xc8, 0xc8, 0xc8);
-}
-
-Color RenderThemeChromiumDefault::inactiveListBoxSelectionForegroundColor() const
-{
- return Color(0x32, 0x32, 0x32);
-}
-
-Color RenderThemeChromiumDefault::platformActiveSelectionBackgroundColor() const
-{
- return m_activeSelectionBackgroundColor;
-}
-
-Color RenderThemeChromiumDefault::platformInactiveSelectionBackgroundColor() const
-{
- return m_inactiveSelectionBackgroundColor;
-}
-
-Color RenderThemeChromiumDefault::platformActiveSelectionForegroundColor() const
-{
- return m_activeSelectionForegroundColor;
-}
-
-Color RenderThemeChromiumDefault::platformInactiveSelectionForegroundColor() const
-{
- return m_inactiveSelectionForegroundColor;
-}
-
-#if ENABLE(DATALIST_ELEMENT)
-IntSize RenderThemeChromiumDefault::sliderTickSize() const
-{
- return IntSize(1, 6);
-}
-
-int RenderThemeChromiumDefault::sliderTickOffsetFromTrackCenter() const
-{
- return -16;
-}
-#endif
-
-void RenderThemeChromiumDefault::adjustSliderThumbSize(RenderStyle* style, Element* element) const
-{
- IntSize size = WebKit::Platform::current()->themeEngine()->getSize(WebKit::WebThemeEngine::PartSliderThumb);
-
- if (style->appearance() == SliderThumbHorizontalPart) {
- style->setWidth(Length(size.width(), Fixed));
- style->setHeight(Length(size.height(), Fixed));
- } else if (style->appearance() == SliderThumbVerticalPart) {
- style->setWidth(Length(size.height(), Fixed));
- style->setHeight(Length(size.width(), Fixed));
- } else
- RenderThemeChromiumSkia::adjustSliderThumbSize(style, element);
-}
-
-bool RenderThemeChromiumDefault::supportsControlTints() const
-{
- return true;
-}
-
-void RenderThemeChromiumDefault::setCaretBlinkInterval(double interval)
-{
- m_caretBlinkInterval = interval;
-}
-
-double RenderThemeChromiumDefault::caretBlinkIntervalInternal() const
-{
- return m_caretBlinkInterval;
-}
-
-void RenderThemeChromiumDefault::setSelectionColors(
- unsigned activeBackgroundColor,
- unsigned activeForegroundColor,
- unsigned inactiveBackgroundColor,
- unsigned inactiveForegroundColor)
-{
- m_activeSelectionBackgroundColor = activeBackgroundColor;
- m_activeSelectionForegroundColor = activeForegroundColor;
- m_inactiveSelectionBackgroundColor = inactiveBackgroundColor;
- m_inactiveSelectionForegroundColor = inactiveForegroundColor;
-}
-
-bool RenderThemeChromiumDefault::paintCheckbox(RenderObject* o, const PaintInfo& i, const IntRect& rect)
-{
- WebKit::WebThemeEngine::ExtraParams extraParams;
- WebKit::WebCanvas* canvas = i.context->platformContext()->canvas();
- extraParams.button.checked = isChecked(o);
- extraParams.button.indeterminate = isIndeterminate(o);
-
- WebKit::Platform::current()->themeEngine()->paint(canvas, WebKit::WebThemeEngine::PartCheckbox, getWebThemeState(this, o), WebKit::WebRect(rect), &extraParams);
- return false;
-}
-
-void RenderThemeChromiumDefault::setCheckboxSize(RenderStyle* style) const
-{
- // If the width and height are both specified, then we have nothing to do.
- if (!style->width().isIntrinsicOrAuto() && !style->height().isAuto())
- return;
-
- IntSize size = WebKit::Platform::current()->themeEngine()->getSize(WebKit::WebThemeEngine::PartCheckbox);
- setSizeIfAuto(style, size);
-}
-
-bool RenderThemeChromiumDefault::paintRadio(RenderObject* o, const PaintInfo& i, const IntRect& rect)
-{
- WebKit::WebThemeEngine::ExtraParams extraParams;
- WebKit::WebCanvas* canvas = i.context->platformContext()->canvas();
- extraParams.button.checked = isChecked(o);
-
- WebKit::Platform::current()->themeEngine()->paint(canvas, WebKit::WebThemeEngine::PartRadio, getWebThemeState(this, o), WebKit::WebRect(rect), &extraParams);
- return false;
-}
-
-void RenderThemeChromiumDefault::setRadioSize(RenderStyle* style) const
-{
- // If the width and height are both specified, then we have nothing to do.
- if (!style->width().isIntrinsicOrAuto() && !style->height().isAuto())
- return;
-
- IntSize size = WebKit::Platform::current()->themeEngine()->getSize(WebKit::WebThemeEngine::PartRadio);
- setSizeIfAuto(style, size);
-}
-
-bool RenderThemeChromiumDefault::paintButton(RenderObject* o, const PaintInfo& i, const IntRect& rect)
-{
- WebKit::WebThemeEngine::ExtraParams extraParams;
- WebKit::WebCanvas* canvas = i.context->platformContext()->canvas();
- extraParams.button.isDefault = isDefault(o);
- extraParams.button.hasBorder = true;
- extraParams.button.backgroundColor = defaultButtonBackgroundColor;
- if (o->hasBackground())
- extraParams.button.backgroundColor = o->style()->visitedDependentColor(CSSPropertyBackgroundColor).rgb();
-
- WebKit::Platform::current()->themeEngine()->paint(canvas, WebKit::WebThemeEngine::PartButton, getWebThemeState(this, o), WebKit::WebRect(rect), &extraParams);
- return false;
-}
-
-bool RenderThemeChromiumDefault::paintTextField(RenderObject* o, const PaintInfo& i, const IntRect& rect)
-{
- // WebThemeEngine does not handle border rounded corner and background image
- // so return true to draw CSS border and background.
- if (o->style()->hasBorderRadius() || o->style()->hasBackgroundImage())
- return true;
-
- ControlPart part = o->style()->appearance();
-
- WebKit::WebThemeEngine::ExtraParams extraParams;
- extraParams.textField.isTextArea = part == TextAreaPart;
- extraParams.textField.isListbox = part == ListboxPart;
-
- WebKit::WebCanvas* canvas = i.context->platformContext()->canvas();
-
- // Fallback to white if the specified color object is invalid.
- Color backgroundColor(Color::white);
- if (o->style()->visitedDependentColor(CSSPropertyBackgroundColor).isValid())
- backgroundColor = o->style()->visitedDependentColor(CSSPropertyBackgroundColor);
- extraParams.textField.backgroundColor = backgroundColor.rgb();
-
- WebKit::Platform::current()->themeEngine()->paint(canvas, WebKit::WebThemeEngine::PartTextField, getWebThemeState(this, o), WebKit::WebRect(rect), &extraParams);
- return false;
-}
-
-bool RenderThemeChromiumDefault::paintMenuList(RenderObject* o, const PaintInfo& i, const IntRect& rect)
-{
- if (!o->isBox())
- return false;
-
- const int right = rect.x() + rect.width();
- const int middle = rect.y() + rect.height() / 2;
-
- WebKit::WebThemeEngine::ExtraParams extraParams;
- extraParams.menuList.arrowX = (o->style()->direction() == RTL) ? rect.x() + 7 : right - 13;
- extraParams.menuList.arrowY = middle;
- const RenderBox* box = toRenderBox(o);
- // Match Chromium Win behaviour of showing all borders if any are shown.
- extraParams.menuList.hasBorder = box->borderRight() || box->borderLeft() || box->borderTop() || box->borderBottom();
- extraParams.menuList.hasBorderRadius = o->style()->hasBorderRadius();
- // Fallback to transparent if the specified color object is invalid.
- extraParams.menuList.backgroundColor = Color::transparent;
- if (o->hasBackground())
- extraParams.menuList.backgroundColor = o->style()->visitedDependentColor(CSSPropertyBackgroundColor).rgb();
-
- WebKit::WebCanvas* canvas = i.context->platformContext()->canvas();
-
- WebKit::Platform::current()->themeEngine()->paint(canvas, WebKit::WebThemeEngine::PartMenuList, getWebThemeState(this, o), WebKit::WebRect(rect), &extraParams);
- return false;
-}
-
-bool RenderThemeChromiumDefault::paintSliderTrack(RenderObject* o, const PaintInfo& i, const IntRect& rect)
-{
- WebKit::WebThemeEngine::ExtraParams extraParams;
- WebKit::WebCanvas* canvas = i.context->platformContext()->canvas();
- extraParams.slider.vertical = o->style()->appearance() == SliderVerticalPart;
-
- WebKit::Platform::current()->themeEngine()->paint(canvas, WebKit::WebThemeEngine::PartSliderTrack, getWebThemeState(this, o), WebKit::WebRect(rect), &extraParams);
-
-#if ENABLE(DATALIST_ELEMENT)
- paintSliderTicks(o, i, rect);
-#endif
-
- return false;
-}
-
-bool RenderThemeChromiumDefault::paintSliderThumb(RenderObject* o, const PaintInfo& i, const IntRect& rect)
-{
- WebKit::WebThemeEngine::ExtraParams extraParams;
- WebKit::WebCanvas* canvas = i.context->platformContext()->canvas();
- extraParams.slider.vertical = o->style()->appearance() == SliderThumbVerticalPart;
- extraParams.slider.inDrag = isPressed(o);
-
- WebKit::Platform::current()->themeEngine()->paint(canvas, WebKit::WebThemeEngine::PartSliderThumb, getWebThemeState(this, o), WebKit::WebRect(rect), &extraParams);
- return false;
-}
-
-void RenderThemeChromiumDefault::adjustInnerSpinButtonStyle(StyleResolver*, RenderStyle* style, Element*) const
-{
- IntSize size = WebKit::Platform::current()->themeEngine()->getSize(WebKit::WebThemeEngine::PartInnerSpinButton);
-
- style->setWidth(Length(size.width(), Fixed));
- style->setMinWidth(Length(size.width(), Fixed));
-}
-
-bool RenderThemeChromiumDefault::paintInnerSpinButton(RenderObject* o, const PaintInfo& i, const IntRect& rect)
-{
- WebKit::WebThemeEngine::ExtraParams extraParams;
- WebKit::WebCanvas* canvas = i.context->platformContext()->canvas();
- extraParams.innerSpin.spinUp = (controlStatesForRenderer(o) & SpinUpState);
- extraParams.innerSpin.readOnly = isReadOnlyControl(o);
-
- WebKit::Platform::current()->themeEngine()->paint(canvas, WebKit::WebThemeEngine::PartInnerSpinButton, getWebThemeState(this, o), WebKit::WebRect(rect), &extraParams);
- return false;
-}
-
-#if ENABLE(PROGRESS_ELEMENT)
-
-bool RenderThemeChromiumDefault::paintProgressBar(RenderObject* o, const PaintInfo& i, const IntRect& rect)
-{
- if (!o->isProgress())
- return true;
-
- RenderProgress* renderProgress = toRenderProgress(o);
- IntRect valueRect = progressValueRectFor(renderProgress, rect);
-
- WebKit::WebThemeEngine::ExtraParams extraParams;
- extraParams.progressBar.determinate = renderProgress->isDeterminate();
- extraParams.progressBar.valueRectX = valueRect.x();
- extraParams.progressBar.valueRectY = valueRect.y();
- extraParams.progressBar.valueRectWidth = valueRect.width();
- extraParams.progressBar.valueRectHeight = valueRect.height();
-
- DirectionFlippingScope scope(o, i, rect);
- WebKit::WebCanvas* canvas = i.context->platformContext()->canvas();
- WebKit::Platform::current()->themeEngine()->paint(canvas, WebKit::WebThemeEngine::PartProgressBar, getWebThemeState(this, o), WebKit::WebRect(rect), &extraParams);
- return false;
-}
-
-#endif
-
-bool RenderThemeChromiumDefault::shouldOpenPickerWithF4Key() const
-{
- return true;
-}
-
-} // namespace WebCore