diff options
author | keishi@chromium.org <keishi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-17 11:50:42 +0000 |
---|---|---|
committer | keishi@chromium.org <keishi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-17 11:50:42 +0000 |
commit | d69a015cad61b30751d17d61f4e80a8278228858 (patch) | |
tree | 779b96d4826c4281e564bdaf099de6aa228e450f | |
parent | c1c88b9b538710138db56c014a4bf44b72648dd5 (diff) | |
download | chromium_src-d69a015cad61b30751d17d61f4e80a8278228858.zip chromium_src-d69a015cad61b30751d17d61f4e80a8278228858.tar.gz chromium_src-d69a015cad61b30751d17d61f4e80a8278228858.tar.bz2 |
Revert 200785 "Use the default theme as the fallback UI in Blink"
> Use the default theme as the fallback UI in Blink
>
> Most native themes don't support zooming or styling required by Blink.
> This introduces a FallbackTheme that can be used in these situations.
>
> Blink side change: https://codereview.chromium.org/14108007/
>
> BUG=84973
>
> Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=200431
>
> Review URL: https://chromiumcodereview.appspot.com/14424007
TBR=keishi@chromium.org
Review URL: https://codereview.chromium.org/15294003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@200791 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | ui/native_theme/fallback_theme.cc | 195 | ||||
-rw-r--r-- | ui/native_theme/fallback_theme.h | 28 | ||||
-rw-r--r-- | ui/native_theme/native_theme.gyp | 2 | ||||
-rw-r--r-- | ui/native_theme/native_theme_aura.cc | 168 | ||||
-rw-r--r-- | ui/native_theme/native_theme_aura.h | 5 | ||||
-rw-r--r-- | webkit/glue/webfallbackthemeengine_impl.cc | 191 | ||||
-rw-r--r-- | webkit/glue/webfallbackthemeengine_impl.h | 39 | ||||
-rw-r--r-- | webkit/glue/webkit_glue.gypi | 2 | ||||
-rw-r--r-- | webkit/glue/webkitplatformsupport_impl.cc | 7 | ||||
-rw-r--r-- | webkit/glue/webkitplatformsupport_impl.h | 5 |
10 files changed, 173 insertions, 469 deletions
diff --git a/ui/native_theme/fallback_theme.cc b/ui/native_theme/fallback_theme.cc deleted file mode 100644 index 8b5da75..0000000 --- a/ui/native_theme/fallback_theme.cc +++ /dev/null @@ -1,195 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "ui/native_theme/fallback_theme.h" - -#include "base/basictypes.h" -#include "base/logging.h" -#include "ui/gfx/color_utils.h" -#include "ui/gfx/skia_utils_gtk.h" -#include "ui/native_theme/common_theme.h" - -namespace { - -const SkColor kMenuBackgroundColor = SK_ColorWHITE; - -// Theme colors returned by GetSystemColor(). -const SkColor kInvalidColorIdColor = SkColorSetRGB(255, 0, 128); -// Windows: -const SkColor kWindowBackgroundColor = SK_ColorWHITE; -// Dialogs: -const SkColor kDialogBackgroundColor = SkColorSetRGB(251, 251, 251); -// FocusableBorder: -const SkColor kFocusedBorderColor = SkColorSetRGB(0x4D, 0x90, 0xFE); -const SkColor kUnfocusedBorderColor = SkColorSetRGB(0xD9, 0xD9, 0xD9); -// Button: -const SkColor kButtonBackgroundColor = SkColorSetRGB(0xDE, 0xDE, 0xDE); -const SkColor kButtonEnabledColor = SkColorSetRGB(0x22, 0x22, 0x22); -const SkColor kButtonDisabledColor = SkColorSetRGB(0x99, 0x99, 0x99); -const SkColor kButtonHighlightColor = SkColorSetRGB(0, 0, 0); -const SkColor kButtonHoverColor = kButtonEnabledColor; -// MenuItem: -const SkColor kEnabledMenuItemForegroundColor = kButtonEnabledColor; -const SkColor kDisabledMenuItemForegroundColor = kButtonDisabledColor; -const SkColor kFocusedMenuItemBackgroundColor = SkColorSetRGB(0xF1, 0xF1, 0xF1); -const SkColor kHoverMenuItemBackgroundColor = - SkColorSetARGB(204, 255, 255, 255); -const SkColor kMenuSeparatorColor = SkColorSetRGB(0xED, 0xED, 0xED); -const SkColor kEnabledMenuButtonBorderColor = SkColorSetARGB(36, 0, 0, 0); -const SkColor kFocusedMenuButtonBorderColor = SkColorSetARGB(72, 0, 0, 0); -const SkColor kHoverMenuButtonBorderColor = SkColorSetARGB(72, 0, 0, 0); -// Label: -const SkColor kLabelEnabledColor = kButtonEnabledColor; -const SkColor kLabelDisabledColor = kButtonDisabledColor; -const SkColor kLabelBackgroundColor = SK_ColorWHITE; -// Textfield: -const SkColor kTextfieldDefaultColor = SK_ColorBLACK; -const SkColor kTextfieldDefaultBackground = SK_ColorWHITE; -const SkColor kTextfieldReadOnlyColor = SK_ColorDKGRAY; -const SkColor kTextfieldReadOnlyBackground = SK_ColorWHITE; -const SkColor kTextfieldSelectionBackgroundFocused = - SkColorSetARGB(0x54, 0x60, 0xA8, 0xEB); -const SkColor kTextfieldSelectionBackgroundUnfocused = SK_ColorLTGRAY; -const SkColor kTextfieldSelectionColor = - color_utils::AlphaBlend(SK_ColorBLACK, - kTextfieldSelectionBackgroundFocused, 0xdd); -// Tree -const SkColor kTreeBackground = SK_ColorWHITE; -const SkColor kTreeTextColor = SK_ColorBLACK; -const SkColor kTreeSelectedTextColor = SK_ColorBLACK; -const SkColor kTreeSelectionBackgroundColor = SkColorSetRGB(0xEE, 0xEE, 0xEE); -const SkColor kTreeArrowColor = SkColorSetRGB(0x7A, 0x7A, 0x7A); -// Table -const SkColor kTableBackground = SK_ColorWHITE; -const SkColor kTableTextColor = SK_ColorBLACK; -const SkColor kTableSelectedTextColor = SK_ColorBLACK; -const SkColor kTableSelectionBackgroundColor = SkColorSetRGB(0xEE, 0xEE, 0xEE); -const SkColor kTableGroupingIndicatorColor = SkColorSetRGB(0xCC, 0xCC, 0xCC); - -} // namespace - -namespace ui { - -FallbackTheme::FallbackTheme() { -} - -FallbackTheme::~FallbackTheme() { -} - -SkColor FallbackTheme::GetSystemColor(ColorId color_id) const { - // This implementation returns hardcoded colors. - SkColor color; - if (CommonThemeGetSystemColor(color_id, &color)) - return color; - - switch (color_id) { - // Windows - case kColorId_WindowBackground: - return kWindowBackgroundColor; - - // Dialogs - case kColorId_DialogBackground: - return kDialogBackgroundColor; - - // FocusableBorder - case kColorId_FocusedBorderColor: - return kFocusedBorderColor; - case kColorId_UnfocusedBorderColor: - return kUnfocusedBorderColor; - - // Button - case kColorId_ButtonBackgroundColor: - return kButtonBackgroundColor; - case kColorId_ButtonEnabledColor: - return kButtonEnabledColor; - case kColorId_ButtonDisabledColor: - return kButtonDisabledColor; - case kColorId_ButtonHighlightColor: - return kButtonHighlightColor; - case kColorId_ButtonHoverColor: - return kButtonHoverColor; - - // MenuItem - case kColorId_EnabledMenuItemForegroundColor: - return kEnabledMenuItemForegroundColor; - case kColorId_DisabledMenuItemForegroundColor: - return kDisabledMenuItemForegroundColor; - case kColorId_SelectedMenuItemForegroundColor: - return kEnabledMenuItemForegroundColor; - case kColorId_FocusedMenuItemBackgroundColor: - return kFocusedMenuItemBackgroundColor; - case kColorId_HoverMenuItemBackgroundColor: - return kHoverMenuItemBackgroundColor; - case kColorId_MenuSeparatorColor: - return kMenuSeparatorColor; - case kColorId_EnabledMenuButtonBorderColor: - return kEnabledMenuButtonBorderColor; - case kColorId_FocusedMenuButtonBorderColor: - return kFocusedMenuButtonBorderColor; - case kColorId_HoverMenuButtonBorderColor: - return kHoverMenuButtonBorderColor; - - // Label - case kColorId_LabelEnabledColor: - return kLabelEnabledColor; - case kColorId_LabelDisabledColor: - return kLabelDisabledColor; - case kColorId_LabelBackgroundColor: - return kLabelBackgroundColor; - - // Textfield - case kColorId_TextfieldDefaultColor: - return kTextfieldDefaultColor; - case kColorId_TextfieldDefaultBackground: - return kTextfieldDefaultBackground; - case kColorId_TextfieldReadOnlyColor: - return kTextfieldReadOnlyColor; - case kColorId_TextfieldReadOnlyBackground: - return kTextfieldReadOnlyBackground; - case kColorId_TextfieldSelectionColor: - return kTextfieldSelectionColor; - case kColorId_TextfieldSelectionBackgroundFocused: - return kTextfieldSelectionBackgroundFocused; - case kColorId_TextfieldSelectionBackgroundUnfocused: - return kTextfieldSelectionBackgroundUnfocused; - - // Tree - case kColorId_TreeBackground: - return kTreeBackground; - case kColorId_TreeText: - return kTreeTextColor; - case kColorId_TreeSelectedText: - case kColorId_TreeSelectedTextUnfocused: - return kTreeSelectedTextColor; - case kColorId_TreeSelectionBackgroundFocused: - case kColorId_TreeSelectionBackgroundUnfocused: - return kTreeSelectionBackgroundColor; - case kColorId_TreeArrow: - return kTreeArrowColor; - - // Table - case kColorId_TableBackground: - return kTableBackground; - case kColorId_TableText: - return kTableTextColor; - case kColorId_TableSelectedText: - case kColorId_TableSelectedTextUnfocused: - return kTableSelectedTextColor; - case kColorId_TableSelectionBackgroundFocused: - case kColorId_TableSelectionBackgroundUnfocused: - return kTableSelectionBackgroundColor; - case kColorId_TableGroupingIndicatorColor: - return kTableGroupingIndicatorColor; - - case kColorId_MenuBackgroundColor: - return kMenuBackgroundColor; - case kColorId_MenuBorderColor: - NOTREACHED(); - break; - } - - return kInvalidColorIdColor; -} - -} // namespace ui diff --git a/ui/native_theme/fallback_theme.h b/ui/native_theme/fallback_theme.h deleted file mode 100644 index 2a69936..0000000 --- a/ui/native_theme/fallback_theme.h +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef UI_NATIVE_THEME_FALLBACK_THEME_H_ -#define UI_NATIVE_THEME_FALLBACK_THEME_H_ - -#include "ui/native_theme/native_theme_base.h" - -namespace ui { - -// This theme can draw UI controls on every platform. This is only used when -// zooming a web page and the native theme doesn't support scaling. -class NATIVE_THEME_EXPORT FallbackTheme : public NativeThemeBase { - public: - FallbackTheme(); - virtual ~FallbackTheme(); - - private: - // Overridden from NativeThemeBase: - virtual SkColor GetSystemColor(ColorId color_id) const OVERRIDE; - - DISALLOW_COPY_AND_ASSIGN(FallbackTheme); -}; - -} // namespace ui - -#endif // UI_NATIVE_THEME_FALLBACK_THEME_H_ diff --git a/ui/native_theme/native_theme.gyp b/ui/native_theme/native_theme.gyp index 671f286..70d27a3 100644 --- a/ui/native_theme/native_theme.gyp +++ b/ui/native_theme/native_theme.gyp @@ -23,8 +23,6 @@ 'sources': [ 'common_theme.cc', 'common_theme.h', - 'fallback_theme.cc', - 'fallback_theme.h', 'native_theme.cc', 'native_theme.h', 'native_theme_android.cc', diff --git a/ui/native_theme/native_theme_aura.cc b/ui/native_theme/native_theme_aura.cc index 6cbc255..8d7ae0b 100644 --- a/ui/native_theme/native_theme_aura.cc +++ b/ui/native_theme/native_theme_aura.cc @@ -19,6 +19,59 @@ namespace { const SkColor kMenuBackgroundColor = SK_ColorWHITE; +// Theme colors returned by GetSystemColor(). +const SkColor kInvalidColorIdColor = SkColorSetRGB(255, 0, 128); +// Windows: +const SkColor kWindowBackgroundColor = SK_ColorWHITE; +// Dialogs: +const SkColor kDialogBackgroundColor = SkColorSetRGB(251, 251, 251); +// FocusableBorder: +const SkColor kFocusedBorderColor = SkColorSetRGB(0x4D, 0x90, 0xFE); +const SkColor kUnfocusedBorderColor = SkColorSetRGB(0xD9, 0xD9, 0xD9); +// Button: +const SkColor kButtonBackgroundColor = SkColorSetRGB(0xDE, 0xDE, 0xDE); +const SkColor kButtonEnabledColor = SkColorSetRGB(0x22, 0x22, 0x22); +const SkColor kButtonDisabledColor = SkColorSetRGB(0x99, 0x99, 0x99); +const SkColor kButtonHighlightColor = SkColorSetRGB(0, 0, 0); +const SkColor kButtonHoverColor = kButtonEnabledColor; +// MenuItem: +const SkColor kEnabledMenuItemForegroundColor = kButtonEnabledColor; +const SkColor kDisabledMenuItemForegroundColor = kButtonDisabledColor; +const SkColor kFocusedMenuItemBackgroundColor = SkColorSetRGB(0xF1, 0xF1, 0xF1); +const SkColor kHoverMenuItemBackgroundColor = + SkColorSetARGB(204, 255, 255, 255); +const SkColor kMenuSeparatorColor = SkColorSetRGB(0xED, 0xED, 0xED); +const SkColor kEnabledMenuButtonBorderColor = SkColorSetARGB(36, 0, 0, 0); +const SkColor kFocusedMenuButtonBorderColor = SkColorSetARGB(72, 0, 0, 0); +const SkColor kHoverMenuButtonBorderColor = SkColorSetARGB(72, 0, 0, 0); +// Label: +const SkColor kLabelEnabledColor = kButtonEnabledColor; +const SkColor kLabelDisabledColor = kButtonDisabledColor; +const SkColor kLabelBackgroundColor = SK_ColorWHITE; +// Textfield: +const SkColor kTextfieldDefaultColor = SK_ColorBLACK; +const SkColor kTextfieldDefaultBackground = SK_ColorWHITE; +const SkColor kTextfieldReadOnlyColor = SK_ColorDKGRAY; +const SkColor kTextfieldReadOnlyBackground = SK_ColorWHITE; +const SkColor kTextfieldSelectionBackgroundFocused = + SkColorSetARGB(0x54, 0x60, 0xA8, 0xEB); +const SkColor kTextfieldSelectionBackgroundUnfocused = SK_ColorLTGRAY; +const SkColor kTextfieldSelectionColor = + color_utils::AlphaBlend(SK_ColorBLACK, + kTextfieldSelectionBackgroundFocused, 0xdd); +// Tree +const SkColor kTreeBackground = SK_ColorWHITE; +const SkColor kTreeTextColor = SK_ColorBLACK; +const SkColor kTreeSelectedTextColor = SK_ColorBLACK; +const SkColor kTreeSelectionBackgroundColor = SkColorSetRGB(0xEE, 0xEE, 0xEE); +const SkColor kTreeArrowColor = SkColorSetRGB(0x7A, 0x7A, 0x7A); +// Table +const SkColor kTableBackground = SK_ColorWHITE; +const SkColor kTableTextColor = SK_ColorBLACK; +const SkColor kTableSelectedTextColor = SK_ColorBLACK; +const SkColor kTableSelectionBackgroundColor = SkColorSetRGB(0xEE, 0xEE, 0xEE); +const SkColor kTableGroupingIndicatorColor = SkColorSetRGB(0xCC, 0xCC, 0xCC); + } // namespace namespace ui { @@ -42,6 +95,121 @@ NativeThemeAura::NativeThemeAura() { NativeThemeAura::~NativeThemeAura() { } +SkColor NativeThemeAura::GetSystemColor(ColorId color_id) const { + // This implementation returns hardcoded colors. + SkColor color; + if (CommonThemeGetSystemColor(color_id, &color)) + return color; + + switch (color_id) { + // Windows + case kColorId_WindowBackground: + return kWindowBackgroundColor; + + // Dialogs + case kColorId_DialogBackground: + return kDialogBackgroundColor; + + // FocusableBorder + case kColorId_FocusedBorderColor: + return kFocusedBorderColor; + case kColorId_UnfocusedBorderColor: + return kUnfocusedBorderColor; + + // Button + case kColorId_ButtonBackgroundColor: + return kButtonBackgroundColor; + case kColorId_ButtonEnabledColor: + return kButtonEnabledColor; + case kColorId_ButtonDisabledColor: + return kButtonDisabledColor; + case kColorId_ButtonHighlightColor: + return kButtonHighlightColor; + case kColorId_ButtonHoverColor: + return kButtonHoverColor; + + // MenuItem + case kColorId_EnabledMenuItemForegroundColor: + return kEnabledMenuItemForegroundColor; + case kColorId_DisabledMenuItemForegroundColor: + return kDisabledMenuItemForegroundColor; + case kColorId_SelectedMenuItemForegroundColor: + return kEnabledMenuItemForegroundColor; + case kColorId_FocusedMenuItemBackgroundColor: + return kFocusedMenuItemBackgroundColor; + case kColorId_HoverMenuItemBackgroundColor: + return kHoverMenuItemBackgroundColor; + case kColorId_MenuSeparatorColor: + return kMenuSeparatorColor; + case kColorId_EnabledMenuButtonBorderColor: + return kEnabledMenuButtonBorderColor; + case kColorId_FocusedMenuButtonBorderColor: + return kFocusedMenuButtonBorderColor; + case kColorId_HoverMenuButtonBorderColor: + return kHoverMenuButtonBorderColor; + + // Label + case kColorId_LabelEnabledColor: + return kLabelEnabledColor; + case kColorId_LabelDisabledColor: + return kLabelDisabledColor; + case kColorId_LabelBackgroundColor: + return kLabelBackgroundColor; + + // Textfield + case kColorId_TextfieldDefaultColor: + return kTextfieldDefaultColor; + case kColorId_TextfieldDefaultBackground: + return kTextfieldDefaultBackground; + case kColorId_TextfieldReadOnlyColor: + return kTextfieldReadOnlyColor; + case kColorId_TextfieldReadOnlyBackground: + return kTextfieldReadOnlyBackground; + case kColorId_TextfieldSelectionColor: + return kTextfieldSelectionColor; + case kColorId_TextfieldSelectionBackgroundFocused: + return kTextfieldSelectionBackgroundFocused; + case kColorId_TextfieldSelectionBackgroundUnfocused: + return kTextfieldSelectionBackgroundUnfocused; + + // Tree + case kColorId_TreeBackground: + return kTreeBackground; + case kColorId_TreeText: + return kTreeTextColor; + case kColorId_TreeSelectedText: + case kColorId_TreeSelectedTextUnfocused: + return kTreeSelectedTextColor; + case kColorId_TreeSelectionBackgroundFocused: + case kColorId_TreeSelectionBackgroundUnfocused: + return kTreeSelectionBackgroundColor; + case kColorId_TreeArrow: + return kTreeArrowColor; + + // Table + case kColorId_TableBackground: + return kTableBackground; + case kColorId_TableText: + return kTableTextColor; + case kColorId_TableSelectedText: + case kColorId_TableSelectedTextUnfocused: + return kTableSelectedTextColor; + case kColorId_TableSelectionBackgroundFocused: + case kColorId_TableSelectionBackgroundUnfocused: + return kTableSelectionBackgroundColor; + case kColorId_TableGroupingIndicatorColor: + return kTableGroupingIndicatorColor; + + case kColorId_MenuBackgroundColor: + return kMenuBackgroundColor; + case kColorId_MenuBorderColor: + NOTREACHED(); + break; + } + + return kInvalidColorIdColor; +} + void NativeThemeAura::PaintMenuPopupBackground( SkCanvas* canvas, const gfx::Size& size, diff --git a/ui/native_theme/native_theme_aura.h b/ui/native_theme/native_theme_aura.h index b3417b3..51ebd38 100644 --- a/ui/native_theme/native_theme_aura.h +++ b/ui/native_theme/native_theme_aura.h @@ -7,12 +7,12 @@ #include "base/basictypes.h" #include "base/compiler_specific.h" -#include "ui/native_theme/fallback_theme.h" +#include "ui/native_theme/native_theme_base.h" namespace ui { // Aura implementation of native theme support. -class NATIVE_THEME_EXPORT NativeThemeAura : public FallbackTheme { +class NATIVE_THEME_EXPORT NativeThemeAura : public NativeThemeBase { public: static NativeThemeAura* instance(); @@ -21,6 +21,7 @@ class NATIVE_THEME_EXPORT NativeThemeAura : public FallbackTheme { virtual ~NativeThemeAura(); // Overridden from NativeThemeBase: + virtual SkColor GetSystemColor(ColorId color_id) const OVERRIDE; virtual void PaintMenuPopupBackground( SkCanvas* canvas, const gfx::Size& size, diff --git a/webkit/glue/webfallbackthemeengine_impl.cc b/webkit/glue/webfallbackthemeengine_impl.cc deleted file mode 100644 index 213e3a7..0000000 --- a/webkit/glue/webfallbackthemeengine_impl.cc +++ /dev/null @@ -1,191 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "webkit/glue/webfallbackthemeengine_impl.h" - -#include "skia/ext/platform_canvas.h" -#include "third_party/WebKit/Source/Platform/chromium/public/WebRect.h" -#include "third_party/WebKit/Source/Platform/chromium/public/WebSize.h" -#include "ui/native_theme/fallback_theme.h" - -using WebKit::WebCanvas; -using WebKit::WebColor; -using WebKit::WebRect; -using WebKit::WebFallbackThemeEngine; - -namespace webkit_glue { - -static ui::NativeTheme::Part NativeThemePart( - WebFallbackThemeEngine::Part part) { - switch (part) { - case WebFallbackThemeEngine::PartScrollbarDownArrow: - return ui::NativeTheme::kScrollbarDownArrow; - case WebFallbackThemeEngine::PartScrollbarLeftArrow: - return ui::NativeTheme::kScrollbarLeftArrow; - case WebFallbackThemeEngine::PartScrollbarRightArrow: - return ui::NativeTheme::kScrollbarRightArrow; - case WebFallbackThemeEngine::PartScrollbarUpArrow: - return ui::NativeTheme::kScrollbarUpArrow; - case WebFallbackThemeEngine::PartScrollbarHorizontalThumb: - return ui::NativeTheme::kScrollbarHorizontalThumb; - case WebFallbackThemeEngine::PartScrollbarVerticalThumb: - return ui::NativeTheme::kScrollbarVerticalThumb; - case WebFallbackThemeEngine::PartScrollbarHorizontalTrack: - return ui::NativeTheme::kScrollbarHorizontalTrack; - case WebFallbackThemeEngine::PartScrollbarVerticalTrack: - return ui::NativeTheme::kScrollbarVerticalTrack; - case WebFallbackThemeEngine::PartCheckbox: - return ui::NativeTheme::kCheckbox; - case WebFallbackThemeEngine::PartRadio: - return ui::NativeTheme::kRadio; - case WebFallbackThemeEngine::PartButton: - return ui::NativeTheme::kPushButton; - case WebFallbackThemeEngine::PartTextField: - return ui::NativeTheme::kTextField; - case WebFallbackThemeEngine::PartMenuList: - return ui::NativeTheme::kMenuList; - case WebFallbackThemeEngine::PartSliderTrack: - return ui::NativeTheme::kSliderTrack; - case WebFallbackThemeEngine::PartSliderThumb: - return ui::NativeTheme::kSliderThumb; - case WebFallbackThemeEngine::PartInnerSpinButton: - return ui::NativeTheme::kInnerSpinButton; - case WebFallbackThemeEngine::PartProgressBar: - return ui::NativeTheme::kProgressBar; - default: - return ui::NativeTheme::kScrollbarDownArrow; - } -} - -static ui::NativeTheme::State NativeThemeState( - WebFallbackThemeEngine::State state) { - switch (state) { - case WebFallbackThemeEngine::StateDisabled: - return ui::NativeTheme::kDisabled; - case WebFallbackThemeEngine::StateHover: - return ui::NativeTheme::kHovered; - case WebFallbackThemeEngine::StateNormal: - return ui::NativeTheme::kNormal; - case WebFallbackThemeEngine::StatePressed: - return ui::NativeTheme::kPressed; - default: - return ui::NativeTheme::kDisabled; - } -} - -static void GetNativeThemeExtraParams( - WebFallbackThemeEngine::Part part, - WebFallbackThemeEngine::State state, - const WebFallbackThemeEngine::ExtraParams* extra_params, - ui::NativeTheme::ExtraParams* native_theme_extra_params) { - switch (part) { - case WebFallbackThemeEngine::PartScrollbarHorizontalTrack: - case WebFallbackThemeEngine::PartScrollbarVerticalTrack: - native_theme_extra_params->scrollbar_track.track_x = - extra_params->scrollbarTrack.trackX; - native_theme_extra_params->scrollbar_track.track_y = - extra_params->scrollbarTrack.trackY; - native_theme_extra_params->scrollbar_track.track_width = - extra_params->scrollbarTrack.trackWidth; - native_theme_extra_params->scrollbar_track.track_height = - extra_params->scrollbarTrack.trackHeight; - break; - case WebFallbackThemeEngine::PartCheckbox: - native_theme_extra_params->button.checked = extra_params->button.checked; - native_theme_extra_params->button.indeterminate = - extra_params->button.indeterminate; - break; - case WebFallbackThemeEngine::PartRadio: - native_theme_extra_params->button.checked = extra_params->button.checked; - break; - case WebFallbackThemeEngine::PartButton: - native_theme_extra_params->button.is_default = - extra_params->button.isDefault; - native_theme_extra_params->button.has_border = - extra_params->button.hasBorder; - // Native buttons have a different focus style. - native_theme_extra_params->button.is_focused = false; - native_theme_extra_params->button.background_color = - extra_params->button.backgroundColor; - break; - case WebFallbackThemeEngine::PartTextField: - native_theme_extra_params->text_field.is_text_area = - extra_params->textField.isTextArea; - native_theme_extra_params->text_field.is_listbox = - extra_params->textField.isListbox; - native_theme_extra_params->text_field.background_color = - extra_params->textField.backgroundColor; - break; - case WebFallbackThemeEngine::PartMenuList: - native_theme_extra_params->menu_list.has_border = - extra_params->menuList.hasBorder; - native_theme_extra_params->menu_list.has_border_radius = - extra_params->menuList.hasBorderRadius; - native_theme_extra_params->menu_list.arrow_x = - extra_params->menuList.arrowX; - native_theme_extra_params->menu_list.arrow_y = - extra_params->menuList.arrowY; - native_theme_extra_params->menu_list.background_color = - extra_params->menuList.backgroundColor; - break; - case WebFallbackThemeEngine::PartSliderTrack: - case WebFallbackThemeEngine::PartSliderThumb: - native_theme_extra_params->slider.vertical = - extra_params->slider.vertical; - native_theme_extra_params->slider.in_drag = extra_params->slider.inDrag; - break; - case WebFallbackThemeEngine::PartInnerSpinButton: - native_theme_extra_params->inner_spin.spin_up = - extra_params->innerSpin.spinUp; - native_theme_extra_params->inner_spin.read_only = - extra_params->innerSpin.readOnly; - break; - case WebFallbackThemeEngine::PartProgressBar: - native_theme_extra_params->progress_bar.determinate = - extra_params->progressBar.determinate; - native_theme_extra_params->progress_bar.value_rect_x = - extra_params->progressBar.valueRectX; - native_theme_extra_params->progress_bar.value_rect_y = - extra_params->progressBar.valueRectY; - native_theme_extra_params->progress_bar.value_rect_width = - extra_params->progressBar.valueRectWidth; - native_theme_extra_params->progress_bar.value_rect_height = - extra_params->progressBar.valueRectHeight; - break; - default: - break; // Parts that have no extra params get here. - } -} - -WebFallbackThemeEngineImpl::WebFallbackThemeEngineImpl() - : theme_(new ui::FallbackTheme()) { -} - -WebFallbackThemeEngineImpl::~WebFallbackThemeEngineImpl() {} - -WebKit::WebSize WebFallbackThemeEngineImpl::getSize( - WebFallbackThemeEngine::Part part) { - ui::NativeTheme::ExtraParams extra; - return theme_->GetPartSize(NativeThemePart(part), - ui::NativeTheme::kNormal, - extra); -} - -void WebFallbackThemeEngineImpl::paint( - WebKit::WebCanvas* canvas, - WebFallbackThemeEngine::Part part, - WebFallbackThemeEngine::State state, - const WebKit::WebRect& rect, - const WebFallbackThemeEngine::ExtraParams* extra_params) { - ui::NativeTheme::ExtraParams native_theme_extra_params; - GetNativeThemeExtraParams( - part, state, extra_params, &native_theme_extra_params); - theme_->Paint(canvas, - NativeThemePart(part), - NativeThemeState(state), - gfx::Rect(rect), - native_theme_extra_params); -} - -} // namespace webkit_glue diff --git a/webkit/glue/webfallbackthemeengine_impl.h b/webkit/glue/webfallbackthemeengine_impl.h deleted file mode 100644 index 0887774..0000000 --- a/webkit/glue/webfallbackthemeengine_impl.h +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef WEBKIT_GLUE_WEBFALLBACKTHEMEENGINE_IMPL_H_ -#define WEBKIT_GLUE_WEBFALLBACKTHEMEENGINE_IMPL_H_ - -#include "base/memory/scoped_ptr.h" -#include "third_party/WebKit/Source/Platform/chromium/public/WebFallbackThemeEngine.h" - -namespace ui { -class FallbackTheme; -} - -namespace webkit_glue { - -class WebFallbackThemeEngineImpl : public WebKit::WebFallbackThemeEngine { - public: - WebFallbackThemeEngineImpl(); - virtual ~WebFallbackThemeEngineImpl(); - - // WebFallbackThemeEngine methods: - virtual WebKit::WebSize getSize(WebKit::WebFallbackThemeEngine::Part); - virtual void paint( - WebKit::WebCanvas* canvas, - WebKit::WebFallbackThemeEngine::Part part, - WebKit::WebFallbackThemeEngine::State state, - const WebKit::WebRect& rect, - const WebKit::WebFallbackThemeEngine::ExtraParams* extra_params); - - private: - scoped_ptr<ui::FallbackTheme> theme_; - - DISALLOW_COPY_AND_ASSIGN(WebFallbackThemeEngineImpl); -}; - -} // namespace webkit_glue - -#endif // WEBKIT_GLUE_WEBFALLBACKTHEMEENGINE_IMPL_H_ diff --git a/webkit/glue/webkit_glue.gypi b/webkit/glue/webkit_glue.gypi index b4f8011..2a51635 100644 --- a/webkit/glue/webkit_glue.gypi +++ b/webkit/glue/webkit_glue.gypi @@ -228,8 +228,6 @@ 'webdropdata.cc', 'webdropdata_win.cc', 'webdropdata.h', - 'webfallbackthemeengine_impl.cc', - 'webfallbackthemeengine_impl.h', 'webfileutilities_impl.cc', 'webfileutilities_impl.h', 'webkit_glue.cc', diff --git a/webkit/glue/webkitplatformsupport_impl.cc b/webkit/glue/webkitplatformsupport_impl.cc index af0ec80..00900a7 100644 --- a/webkit/glue/webkitplatformsupport_impl.cc +++ b/webkit/glue/webkitplatformsupport_impl.cc @@ -62,7 +62,6 @@ using WebKit::WebAudioBus; using WebKit::WebCookie; using WebKit::WebData; -using WebKit::WebFallbackThemeEngine; using WebKit::WebLocalizedString; using WebKit::WebPluginListBuilder; using WebKit::WebString; @@ -384,11 +383,7 @@ void WebKitPlatformSupportImpl::SetFlingCurveParameters( } WebThemeEngine* WebKitPlatformSupportImpl::themeEngine() { - return &native_theme_engine_; -} - -WebFallbackThemeEngine* WebKitPlatformSupportImpl::fallbackThemeEngine() { - return &fallback_theme_engine_; + return &theme_engine_; } WebURLLoader* WebKitPlatformSupportImpl::createURLLoader() { diff --git a/webkit/glue/webkitplatformsupport_impl.h b/webkit/glue/webkitplatformsupport_impl.h index e8c2b28..145f631 100644 --- a/webkit/glue/webkitplatformsupport_impl.h +++ b/webkit/glue/webkitplatformsupport_impl.h @@ -14,7 +14,6 @@ #include "third_party/WebKit/Source/Platform/chromium/public/WebURLError.h" #include "ui/base/layout.h" #include "webkit/glue/resource_loader_bridge.h" -#include "webkit/glue/webfallbackthemeengine_impl.h" #include "webkit/glue/webkit_glue_export.h" #if defined(USE_DEFAULT_RENDER_THEME) @@ -58,7 +57,6 @@ class WEBKIT_GLUE_EXPORT WebKitPlatformSupportImpl : // Platform methods (partial implementation): virtual WebKit::WebThemeEngine* themeEngine(); - virtual WebKit::WebFallbackThemeEngine* fallbackThemeEngine(); virtual base::PlatformFile databaseOpenFile( const WebKit::WebString& vfs_file_name, int desired_flags); @@ -188,8 +186,7 @@ class WEBKIT_GLUE_EXPORT WebKitPlatformSupportImpl : double shared_timer_fire_time_; bool shared_timer_fire_time_was_set_while_suspended_; int shared_timer_suspended_; // counter - WebThemeEngineImpl native_theme_engine_; - WebFallbackThemeEngineImpl fallback_theme_engine_; + WebThemeEngineImpl theme_engine_; base::ThreadLocalStorage::Slot current_thread_slot_; scoped_ptr<FlingCurveConfiguration> fling_curve_configuration_; }; |