Home | History | Annotate | Download | only in supervised_user
      1 // Copyright 2014 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "chrome/browser/supervised_user/supervised_user_theme.h"
      6 
      7 #include "chrome/browser/themes/theme_properties.h"
      8 #include "grit/theme_resources.h"
      9 #include "ui/base/resource/resource_bundle.h"
     10 #include "ui/gfx/image/image.h"
     11 
     12 namespace {
     13 
     14 const SkColor kDefaultColorFrameSupervisedUser = SkColorSetRGB(165, 197, 225);
     15 const SkColor kDefaultColorFrameSupervisedUserInactive =
     16     SkColorSetRGB(180, 225, 247);
     17 const SkColor kDefaultColorSupervisedUserLabelBackground =
     18     SkColorSetRGB(108, 167, 210);
     19 
     20 // Map resource ids to the supervised user resource ids.
     21 int MapToSupervisedUserResourceIds(int id) {
     22   switch (id) {
     23     case IDR_THEME_FRAME:
     24 #if defined(USE_ASH) && !defined(OS_CHROMEOS)
     25     case IDR_THEME_FRAME_DESKTOP:
     26 #endif
     27       return IDR_MANAGED_USER_THEME_FRAME;
     28     case IDR_THEME_FRAME_INACTIVE:
     29 #if defined(USE_ASH) && !defined(OS_CHROMEOS)
     30     case IDR_THEME_FRAME_INACTIVE_DESKTOP:
     31 #endif
     32       return IDR_MANAGED_USER_THEME_FRAME_INACTIVE;
     33     case IDR_THEME_TAB_BACKGROUND:
     34     case IDR_THEME_TAB_BACKGROUND_V:
     35 #if defined(USE_ASH) && !defined(OS_CHROMEOS)
     36     case IDR_THEME_TAB_BACKGROUND_DESKTOP:
     37 #endif
     38       return IDR_MANAGED_USER_THEME_TAB_BACKGROUND;
     39   }
     40   return id;
     41 }
     42 
     43 }  // namespace
     44 
     45 SupervisedUserTheme::SupervisedUserTheme()
     46     : CustomThemeSupplier(SUPERVISED_USER_THEME) {}
     47 
     48 SupervisedUserTheme::~SupervisedUserTheme() {}
     49 
     50 bool SupervisedUserTheme::GetColor(int id, SkColor* color) const {
     51   switch (id) {
     52     case ThemeProperties::COLOR_FRAME:
     53       *color = kDefaultColorFrameSupervisedUser;
     54       return true;
     55     case ThemeProperties::COLOR_FRAME_INACTIVE:
     56       *color = kDefaultColorFrameSupervisedUserInactive;
     57       return true;
     58     case ThemeProperties::COLOR_SUPERVISED_USER_LABEL:
     59       *color = SK_ColorWHITE;
     60       return true;
     61     case ThemeProperties::COLOR_SUPERVISED_USER_LABEL_BACKGROUND:
     62       *color = kDefaultColorSupervisedUserLabelBackground;
     63       return true;
     64   }
     65   return false;
     66 }
     67 
     68 gfx::Image SupervisedUserTheme::GetImageNamed(int id) {
     69   if (!HasCustomImage(id))
     70     return gfx::Image();
     71 
     72   id = MapToSupervisedUserResourceIds(id);
     73   return ResourceBundle::GetSharedInstance().GetNativeImageNamed(id);
     74 }
     75 
     76 bool SupervisedUserTheme::HasCustomImage(int id) const {
     77   return id != MapToSupervisedUserResourceIds(id);
     78 }
     79