| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2007 Apple Inc. | 2 * Copyright (C) 2007 Apple Inc. |
| 3 * Copyright (C) 2007 Alp Toker <alp@atoker.com> | 3 * Copyright (C) 2007 Alp Toker <alp@atoker.com> |
| 4 * Copyright (C) 2008 Collabora Ltd. | 4 * Copyright (C) 2008 Collabora Ltd. |
| 5 * Copyright (C) 2008, 2009 Google Inc. | 5 * Copyright (C) 2008, 2009 Google Inc. |
| 6 * Copyright (C) 2009 Kenneth Rohde Christiansen | 6 * Copyright (C) 2009 Kenneth Rohde Christiansen |
| 7 * | 7 * |
| 8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
| 9 * modify it under the terms of the GNU Library General Public | 9 * modify it under the terms of the GNU Library General Public |
| 10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
| 11 * version 2 of the License, or (at your option) any later version. | 11 * version 2 of the License, or (at your option) any later version. |
| 12 * | 12 * |
| 13 * This library is distributed in the hope that it will be useful, | 13 * This library is distributed in the hope that it will be useful, |
| 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| 16 * Library General Public License for more details. | 16 * Library General Public License for more details. |
| 17 * | 17 * |
| 18 * You should have received a copy of the GNU Library General Public License | 18 * You should have received a copy of the GNU Library General Public License |
| 19 * along with this library; see the file COPYING.LIB. If not, write to | 19 * along with this library; see the file COPYING.LIB. If not, write to |
| 20 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | 20 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
| 21 * Boston, MA 02110-1301, USA. | 21 * Boston, MA 02110-1301, USA. |
| 22 * | 22 * |
| 23 */ | 23 */ |
| 24 | 24 |
| 25 #include "config.h" | 25 #include "config.h" |
| 26 #include "core/rendering/RenderThemeChromiumDefault.h" | 26 #include "core/rendering/RenderThemeChromiumDefault.h" |
| 27 | 27 |
| 28 #include "core/CSSValueKeywords.h" | 28 #include "core/CSSValueKeywords.h" |
| 29 #include "core/UserAgentStyleSheets.h" | |
| 30 #include "core/rendering/PaintInfo.h" | 29 #include "core/rendering/PaintInfo.h" |
| 31 #include "core/rendering/RenderObject.h" | 30 #include "core/rendering/RenderObject.h" |
| 32 #include "core/rendering/RenderProgress.h" | 31 #include "core/rendering/RenderProgress.h" |
| 33 #include "platform/LayoutTestSupport.h" | 32 #include "platform/LayoutTestSupport.h" |
| 34 #include "platform/graphics/Color.h" | 33 #include "platform/graphics/Color.h" |
| 35 #include "platform/graphics/GraphicsContext.h" | 34 #include "platform/graphics/GraphicsContext.h" |
| 36 #include "platform/graphics/GraphicsContextStateSaver.h" | 35 #include "platform/graphics/GraphicsContextStateSaver.h" |
| 37 #include "public/platform/Platform.h" | 36 #include "public/platform/Platform.h" |
| 37 #include "public/platform/WebData.h" |
| 38 #include "public/platform/WebRect.h" | 38 #include "public/platform/WebRect.h" |
| 39 #include "public/platform/WebThemeEngine.h" | 39 #include "public/platform/WebThemeEngine.h" |
| 40 #include "wtf/StdLibExtras.h" | 40 #include "wtf/StdLibExtras.h" |
| 41 | 41 |
| 42 namespace blink { | 42 namespace blink { |
| 43 | 43 |
| 44 static bool useMockTheme() | 44 static bool useMockTheme() |
| 45 { | 45 { |
| 46 return LayoutTestSupport::isRunningLayoutTest(); | 46 return LayoutTestSupport::isRunningLayoutTest(); |
| 47 } | 47 } |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 123 if (cssValueId == CSSValueMenu) | 123 if (cssValueId == CSSValueMenu) |
| 124 return defaultMenuColor; | 124 return defaultMenuColor; |
| 125 return RenderTheme::systemColor(cssValueId); | 125 return RenderTheme::systemColor(cssValueId); |
| 126 } | 126 } |
| 127 | 127 |
| 128 String RenderThemeChromiumDefault::extraDefaultStyleSheet() | 128 String RenderThemeChromiumDefault::extraDefaultStyleSheet() |
| 129 { | 129 { |
| 130 // FIXME: We should not have OS() branches here. | 130 // FIXME: We should not have OS() branches here. |
| 131 // We should have something like RenderThemeWin, RenderThemeLinux, or | 131 // We should have something like RenderThemeWin, RenderThemeLinux, or |
| 132 // should concatenate UA stylesheets on build time. | 132 // should concatenate UA stylesheets on build time. |
| 133 String otherDefaultStyleSheets; |
| 133 #if !OS(WIN) | 134 #if !OS(WIN) |
| 134 return RenderThemeChromiumSkia::extraDefaultStyleSheet() + | |
| 135 #if !OS(ANDROID) | 135 #if !OS(ANDROID) |
| 136 String(themeInputMultipleFieldsCss, sizeof(themeInputMultipleFieldsCss))
+ | 136 const blink::WebData& themeInputMultipleFieldsCssResource = blink::Platform:
:current()->loadResource("themeInputMultipleFields.css"); |
| 137 otherDefaultStyleSheets = otherDefaultStyleSheets + String(themeInputMultipl
eFieldsCssResource.data(), themeInputMultipleFieldsCssResource.size()); |
| 137 #endif | 138 #endif |
| 138 String(themeChromiumLinuxCss, sizeof(themeChromiumLinuxCss)); | 139 const blink::WebData& themeChromiumLinuxCssResource = blink::Platform::curre
nt()->loadResource("themeChromiumLinux.css"); |
| 140 otherDefaultStyleSheets = otherDefaultStyleSheets + String(themeChromiumLinu
xCssResource.data(), themeChromiumLinuxCssResource.size()); |
| 139 #else | 141 #else |
| 140 return RenderThemeChromiumSkia::extraDefaultStyleSheet() + | 142 const blink::WebData& themeInputMultipleFieldsCssResource = blink::Platform:
:current()->loadResource("themeInputMultipleFields.css"); |
| 141 String(themeInputMultipleFieldsCss, sizeof(themeInputMultipleFieldsCss))
; | 143 otherDefaultStyleSheets = otherDefaultStyleSheets + String(themeInputMultipl
eFieldsCssResource.data(), themeInputMultipleFieldsCssResource.size()); |
| 142 #endif | 144 #endif |
| 145 |
| 146 return RenderThemeChromiumSkia::extraDefaultStyleSheet() + otherDefaultStyle
Sheets; |
| 143 } | 147 } |
| 144 | 148 |
| 145 bool RenderThemeChromiumDefault::controlSupportsTints(const RenderObject* o) con
st | 149 bool RenderThemeChromiumDefault::controlSupportsTints(const RenderObject* o) con
st |
| 146 { | 150 { |
| 147 return isEnabled(o); | 151 return isEnabled(o); |
| 148 } | 152 } |
| 149 | 153 |
| 150 Color RenderThemeChromiumDefault::activeListBoxSelectionBackgroundColor() const | 154 Color RenderThemeChromiumDefault::activeListBoxSelectionBackgroundColor() const |
| 151 { | 155 { |
| 152 return Color(0x28, 0x28, 0x28); | 156 return Color(0x28, 0x28, 0x28); |
| (...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 536 if (useMockTheme()) { | 540 if (useMockTheme()) { |
| 537 // The mock theme can't handle zoomed controls, so we fall back to the "
fallback" theme. | 541 // The mock theme can't handle zoomed controls, so we fall back to the "
fallback" theme. |
| 538 ControlPart part = style->appearance(); | 542 ControlPart part = style->appearance(); |
| 539 if (part == CheckboxPart || part == RadioPart) | 543 if (part == CheckboxPart || part == RadioPart) |
| 540 return style->effectiveZoom() != 1; | 544 return style->effectiveZoom() != 1; |
| 541 } | 545 } |
| 542 return RenderTheme::shouldUseFallbackTheme(style); | 546 return RenderTheme::shouldUseFallbackTheme(style); |
| 543 } | 547 } |
| 544 | 548 |
| 545 } // namespace blink | 549 } // namespace blink |
| OLD | NEW |