// Copyright 2019 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 "content/child/webthemeengine_impl_conversions.h" namespace content { // TODO(https://crbug.com/988434): The mapping functions below are duplicated // inside Blink and in the Android implementation of WebThemeEngine. They should // be implemented in one place where dependencies between Blink and // ui::NativeTheme make sense. ui::NativeTheme::Part NativeThemePart(blink::WebThemeEngine::Part part) { switch (part) { case blink::WebThemeEngine::kPartScrollbarDownArrow: return ui::NativeTheme::kScrollbarDownArrow; case blink::WebThemeEngine::kPartScrollbarLeftArrow: return ui::NativeTheme::kScrollbarLeftArrow; case blink::WebThemeEngine::kPartScrollbarRightArrow: return ui::NativeTheme::kScrollbarRightArrow; case blink::WebThemeEngine::kPartScrollbarUpArrow: return ui::NativeTheme::kScrollbarUpArrow; case blink::WebThemeEngine::kPartScrollbarHorizontalThumb: return ui::NativeTheme::kScrollbarHorizontalThumb; case blink::WebThemeEngine::kPartScrollbarVerticalThumb: return ui::NativeTheme::kScrollbarVerticalThumb; case blink::WebThemeEngine::kPartScrollbarHorizontalTrack: return ui::NativeTheme::kScrollbarHorizontalTrack; case blink::WebThemeEngine::kPartScrollbarVerticalTrack: return ui::NativeTheme::kScrollbarVerticalTrack; case blink::WebThemeEngine::kPartScrollbarCorner: return ui::NativeTheme::kScrollbarCorner; case blink::WebThemeEngine::kPartCheckbox: return ui::NativeTheme::kCheckbox; case blink::WebThemeEngine::kPartRadio: return ui::NativeTheme::kRadio; case blink::WebThemeEngine::kPartButton: return ui::NativeTheme::kPushButton; case blink::WebThemeEngine::kPartTextField: return ui::NativeTheme::kTextField; case blink::WebThemeEngine::kPartMenuList: return ui::NativeTheme::kMenuList; case blink::WebThemeEngine::kPartSliderTrack: return ui::NativeTheme::kSliderTrack; case blink::WebThemeEngine::kPartSliderThumb: return ui::NativeTheme::kSliderThumb; case blink::WebThemeEngine::kPartInnerSpinButton: return ui::NativeTheme::kInnerSpinButton; case blink::WebThemeEngine::kPartProgressBar: return ui::NativeTheme::kProgressBar; default: return ui::NativeTheme::kScrollbarDownArrow; } } ui::NativeTheme::ScrollbarOverlayColorTheme NativeThemeScrollbarOverlayColorTheme( blink::WebScrollbarOverlayColorTheme theme) { switch (theme) { case blink::WebScrollbarOverlayColorTheme:: kWebScrollbarOverlayColorThemeLight: return ui::NativeTheme::ScrollbarOverlayColorThemeLight; case blink::WebScrollbarOverlayColorTheme:: kWebScrollbarOverlayColorThemeDark: return ui::NativeTheme::ScrollbarOverlayColorThemeDark; default: return ui::NativeTheme::ScrollbarOverlayColorThemeDark; } } ui::NativeTheme::State NativeThemeState(blink::WebThemeEngine::State state) { switch (state) { case blink::WebThemeEngine::kStateDisabled: return ui::NativeTheme::kDisabled; case blink::WebThemeEngine::kStateHover: return ui::NativeTheme::kHovered; case blink::WebThemeEngine::kStateNormal: return ui::NativeTheme::kNormal; case blink::WebThemeEngine::kStatePressed: return ui::NativeTheme::kPressed; default: return ui::NativeTheme::kDisabled; } } ui::NativeTheme::ColorScheme NativeColorScheme( blink::WebColorScheme color_scheme) { switch (color_scheme) { case blink::WebColorScheme::kLight: return ui::NativeTheme::ColorScheme::kLight; case blink::WebColorScheme::kDark: return ui::NativeTheme::ColorScheme::kDark; } } ui::NativeTheme::SystemThemeColor NativeSystemThemeColor( blink::WebThemeEngine::SystemThemeColor theme_color) { switch (theme_color) { case blink::WebThemeEngine::SystemThemeColor::kButtonFace: return ui::NativeTheme::SystemThemeColor::kButtonFace; case blink::WebThemeEngine::SystemThemeColor::kButtonText: return ui::NativeTheme::SystemThemeColor::kButtonText; case blink::WebThemeEngine::SystemThemeColor::kGrayText: return ui::NativeTheme::SystemThemeColor::kGrayText; case blink::WebThemeEngine::SystemThemeColor::kHighlight: return ui::NativeTheme::SystemThemeColor::kHighlight; case blink::WebThemeEngine::SystemThemeColor::kHighlightText: return ui::NativeTheme::SystemThemeColor::kHighlightText; case blink::WebThemeEngine::SystemThemeColor::kHotlight: return ui::NativeTheme::SystemThemeColor::kHotlight; case blink::WebThemeEngine::SystemThemeColor::kWindow: return ui::NativeTheme::SystemThemeColor::kWindow; case blink::WebThemeEngine::SystemThemeColor::kWindowText: return ui::NativeTheme::SystemThemeColor::kWindowText; default: return ui::NativeTheme::SystemThemeColor::kNotSupported; } } } // namespace content