15d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// found in the LICENSE file. 490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 55d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "content/child/webfallbackthemeengine_impl.h" 690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "skia/ext/platform_canvas.h" 8868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "third_party/WebKit/public/platform/WebRect.h" 9868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "third_party/WebKit/public/platform/WebSize.h" 1090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "ui/native_theme/fallback_theme.h" 1190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 12f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)using blink::WebCanvas; 13f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)using blink::WebColor; 14f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)using blink::WebRect; 15f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)using blink::WebFallbackThemeEngine; 1690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)namespace content { 1890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 1990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)static ui::NativeTheme::Part NativeThemePart( 2090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) WebFallbackThemeEngine::Part part) { 2190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) switch (part) { 2290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) case WebFallbackThemeEngine::PartScrollbarDownArrow: 2390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return ui::NativeTheme::kScrollbarDownArrow; 2490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) case WebFallbackThemeEngine::PartScrollbarLeftArrow: 2590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return ui::NativeTheme::kScrollbarLeftArrow; 2690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) case WebFallbackThemeEngine::PartScrollbarRightArrow: 2790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return ui::NativeTheme::kScrollbarRightArrow; 2890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) case WebFallbackThemeEngine::PartScrollbarUpArrow: 2990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return ui::NativeTheme::kScrollbarUpArrow; 3090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) case WebFallbackThemeEngine::PartScrollbarHorizontalThumb: 3190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return ui::NativeTheme::kScrollbarHorizontalThumb; 3290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) case WebFallbackThemeEngine::PartScrollbarVerticalThumb: 3390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return ui::NativeTheme::kScrollbarVerticalThumb; 3490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) case WebFallbackThemeEngine::PartScrollbarHorizontalTrack: 3590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return ui::NativeTheme::kScrollbarHorizontalTrack; 3690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) case WebFallbackThemeEngine::PartScrollbarVerticalTrack: 3790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return ui::NativeTheme::kScrollbarVerticalTrack; 385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) case WebFallbackThemeEngine::PartScrollbarCorner: 395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) return ui::NativeTheme::kScrollbarCorner; 4090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) case WebFallbackThemeEngine::PartCheckbox: 4190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return ui::NativeTheme::kCheckbox; 4290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) case WebFallbackThemeEngine::PartRadio: 4390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return ui::NativeTheme::kRadio; 4490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) case WebFallbackThemeEngine::PartButton: 4590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return ui::NativeTheme::kPushButton; 4690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) case WebFallbackThemeEngine::PartTextField: 4790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return ui::NativeTheme::kTextField; 4890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) case WebFallbackThemeEngine::PartMenuList: 4990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return ui::NativeTheme::kMenuList; 5090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) case WebFallbackThemeEngine::PartSliderTrack: 5190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return ui::NativeTheme::kSliderTrack; 5290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) case WebFallbackThemeEngine::PartSliderThumb: 5390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return ui::NativeTheme::kSliderThumb; 5490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) case WebFallbackThemeEngine::PartInnerSpinButton: 5590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return ui::NativeTheme::kInnerSpinButton; 5690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) case WebFallbackThemeEngine::PartProgressBar: 5790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return ui::NativeTheme::kProgressBar; 5890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) default: 5990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return ui::NativeTheme::kScrollbarDownArrow; 6090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) } 6190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)} 6290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 6390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)static ui::NativeTheme::State NativeThemeState( 6490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) WebFallbackThemeEngine::State state) { 6590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) switch (state) { 6690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) case WebFallbackThemeEngine::StateDisabled: 6790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return ui::NativeTheme::kDisabled; 6890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) case WebFallbackThemeEngine::StateHover: 6990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return ui::NativeTheme::kHovered; 7090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) case WebFallbackThemeEngine::StateNormal: 7190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return ui::NativeTheme::kNormal; 7290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) case WebFallbackThemeEngine::StatePressed: 7390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return ui::NativeTheme::kPressed; 7490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) default: 7590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return ui::NativeTheme::kDisabled; 7690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) } 7790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)} 7890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 7990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)static void GetNativeThemeExtraParams( 8090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) WebFallbackThemeEngine::Part part, 8190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) WebFallbackThemeEngine::State state, 8290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) const WebFallbackThemeEngine::ExtraParams* extra_params, 8390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) ui::NativeTheme::ExtraParams* native_theme_extra_params) { 8490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) switch (part) { 8590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) case WebFallbackThemeEngine::PartScrollbarHorizontalTrack: 8690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) case WebFallbackThemeEngine::PartScrollbarVerticalTrack: 8790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) native_theme_extra_params->scrollbar_track.track_x = 8890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) extra_params->scrollbarTrack.trackX; 8990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) native_theme_extra_params->scrollbar_track.track_y = 9090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) extra_params->scrollbarTrack.trackY; 9190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) native_theme_extra_params->scrollbar_track.track_width = 9290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) extra_params->scrollbarTrack.trackWidth; 9390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) native_theme_extra_params->scrollbar_track.track_height = 9490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) extra_params->scrollbarTrack.trackHeight; 9590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) break; 9690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) case WebFallbackThemeEngine::PartCheckbox: 9790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) native_theme_extra_params->button.checked = extra_params->button.checked; 9890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) native_theme_extra_params->button.indeterminate = 9990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) extra_params->button.indeterminate; 10090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) break; 10190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) case WebFallbackThemeEngine::PartRadio: 10290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) native_theme_extra_params->button.checked = extra_params->button.checked; 10390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) break; 10490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) case WebFallbackThemeEngine::PartButton: 10590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) native_theme_extra_params->button.is_default = 10690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) extra_params->button.isDefault; 10790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) native_theme_extra_params->button.has_border = 10890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) extra_params->button.hasBorder; 10990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) // Native buttons have a different focus style. 11090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) native_theme_extra_params->button.is_focused = false; 11190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) native_theme_extra_params->button.background_color = 11290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) extra_params->button.backgroundColor; 11390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) break; 11490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) case WebFallbackThemeEngine::PartTextField: 11590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) native_theme_extra_params->text_field.is_text_area = 11690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) extra_params->textField.isTextArea; 11790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) native_theme_extra_params->text_field.is_listbox = 11890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) extra_params->textField.isListbox; 11990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) native_theme_extra_params->text_field.background_color = 12090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) extra_params->textField.backgroundColor; 12190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) break; 12290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) case WebFallbackThemeEngine::PartMenuList: 12390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) native_theme_extra_params->menu_list.has_border = 12490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) extra_params->menuList.hasBorder; 12590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) native_theme_extra_params->menu_list.has_border_radius = 12690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) extra_params->menuList.hasBorderRadius; 12790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) native_theme_extra_params->menu_list.arrow_x = 12890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) extra_params->menuList.arrowX; 12990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) native_theme_extra_params->menu_list.arrow_y = 13090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) extra_params->menuList.arrowY; 13190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) native_theme_extra_params->menu_list.background_color = 13290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) extra_params->menuList.backgroundColor; 13390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) break; 13490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) case WebFallbackThemeEngine::PartSliderTrack: 13590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) case WebFallbackThemeEngine::PartSliderThumb: 13690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) native_theme_extra_params->slider.vertical = 13790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) extra_params->slider.vertical; 13890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) native_theme_extra_params->slider.in_drag = extra_params->slider.inDrag; 13990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) break; 14090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) case WebFallbackThemeEngine::PartInnerSpinButton: 14190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) native_theme_extra_params->inner_spin.spin_up = 14290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) extra_params->innerSpin.spinUp; 14390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) native_theme_extra_params->inner_spin.read_only = 14490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) extra_params->innerSpin.readOnly; 14590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) break; 14690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) case WebFallbackThemeEngine::PartProgressBar: 14790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) native_theme_extra_params->progress_bar.determinate = 14890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) extra_params->progressBar.determinate; 14990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) native_theme_extra_params->progress_bar.value_rect_x = 15090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) extra_params->progressBar.valueRectX; 15190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) native_theme_extra_params->progress_bar.value_rect_y = 15290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) extra_params->progressBar.valueRectY; 15390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) native_theme_extra_params->progress_bar.value_rect_width = 15490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) extra_params->progressBar.valueRectWidth; 15590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) native_theme_extra_params->progress_bar.value_rect_height = 15690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) extra_params->progressBar.valueRectHeight; 15790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) break; 15890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) default: 15990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) break; // Parts that have no extra params get here. 16090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) } 16190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)} 16290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 16390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)WebFallbackThemeEngineImpl::WebFallbackThemeEngineImpl() 16490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) : theme_(new ui::FallbackTheme()) { 16590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)} 16690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 16790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)WebFallbackThemeEngineImpl::~WebFallbackThemeEngineImpl() {} 16890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 169f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)blink::WebSize WebFallbackThemeEngineImpl::getSize( 17090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) WebFallbackThemeEngine::Part part) { 17190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) ui::NativeTheme::ExtraParams extra; 17290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return theme_->GetPartSize(NativeThemePart(part), 17390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) ui::NativeTheme::kNormal, 17490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) extra); 17590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)} 17690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 17790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)void WebFallbackThemeEngineImpl::paint( 178f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebCanvas* canvas, 17990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) WebFallbackThemeEngine::Part part, 18090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) WebFallbackThemeEngine::State state, 181f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebRect& rect, 18290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) const WebFallbackThemeEngine::ExtraParams* extra_params) { 18390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) ui::NativeTheme::ExtraParams native_theme_extra_params; 18490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) GetNativeThemeExtraParams( 18590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) part, state, extra_params, &native_theme_extra_params); 18690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) theme_->Paint(canvas, 18790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) NativeThemePart(part), 18890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) NativeThemeState(state), 18990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) gfx::Rect(rect), 19090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) native_theme_extra_params); 19190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)} 19290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 1935d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} // namespace content 194