| // Copyright 2014 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 "chrome/browser/supervised_user/supervised_user_theme.h" |
| |
| #include "chrome/browser/themes/theme_properties.h" |
| #include "grit/theme_resources.h" |
| #include "ui/base/resource/resource_bundle.h" |
| #include "ui/gfx/image/image.h" |
| |
| namespace { |
| |
| const SkColor kDefaultColorFrameSupervisedUser = SkColorSetRGB(165, 197, 225); |
| const SkColor kDefaultColorFrameSupervisedUserInactive = |
| SkColorSetRGB(180, 225, 247); |
| const SkColor kDefaultColorSupervisedUserLabelBackground = |
| SkColorSetRGB(108, 167, 210); |
| |
| // Map resource ids to the supervised user resource ids. |
| int MapToSupervisedUserResourceIds(int id) { |
| switch (id) { |
| case IDR_THEME_FRAME: |
| #if defined(USE_ASH) && !defined(OS_CHROMEOS) |
| case IDR_THEME_FRAME_DESKTOP: |
| #endif |
| return IDR_MANAGED_USER_THEME_FRAME; |
| case IDR_THEME_FRAME_INACTIVE: |
| #if defined(USE_ASH) && !defined(OS_CHROMEOS) |
| case IDR_THEME_FRAME_INACTIVE_DESKTOP: |
| #endif |
| return IDR_MANAGED_USER_THEME_FRAME_INACTIVE; |
| case IDR_THEME_TAB_BACKGROUND: |
| case IDR_THEME_TAB_BACKGROUND_V: |
| #if defined(USE_ASH) && !defined(OS_CHROMEOS) |
| case IDR_THEME_TAB_BACKGROUND_DESKTOP: |
| #endif |
| return IDR_MANAGED_USER_THEME_TAB_BACKGROUND; |
| } |
| return id; |
| } |
| |
| } // namespace |
| |
| SupervisedUserTheme::SupervisedUserTheme() |
| : CustomThemeSupplier(SUPERVISED_USER_THEME) {} |
| |
| SupervisedUserTheme::~SupervisedUserTheme() {} |
| |
| bool SupervisedUserTheme::GetColor(int id, SkColor* color) const { |
| switch (id) { |
| case ThemeProperties::COLOR_FRAME: |
| *color = kDefaultColorFrameSupervisedUser; |
| return true; |
| case ThemeProperties::COLOR_FRAME_INACTIVE: |
| *color = kDefaultColorFrameSupervisedUserInactive; |
| return true; |
| case ThemeProperties::COLOR_SUPERVISED_USER_LABEL: |
| *color = SK_ColorWHITE; |
| return true; |
| case ThemeProperties::COLOR_SUPERVISED_USER_LABEL_BACKGROUND: |
| *color = kDefaultColorSupervisedUserLabelBackground; |
| return true; |
| } |
| return false; |
| } |
| |
| gfx::Image SupervisedUserTheme::GetImageNamed(int id) { |
| if (!HasCustomImage(id)) |
| return gfx::Image(); |
| |
| id = MapToSupervisedUserResourceIds(id); |
| return ResourceBundle::GetSharedInstance().GetNativeImageNamed(id); |
| } |
| |
| bool SupervisedUserTheme::HasCustomImage(int id) const { |
| return id != MapToSupervisedUserResourceIds(id); |
| } |