• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2012 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 "ash/system/tray/tray_utils.h"
6 
7 #include "ash/system/tray/tray_constants.h"
8 #include "ash/system/tray/tray_item_view.h"
9 #include "ui/gfx/font.h"
10 #include "ui/views/border.h"
11 #include "ui/views/controls/label.h"
12 
13 namespace ash {
14 namespace internal {
15 
SetupLabelForTray(views::Label * label)16 void SetupLabelForTray(views::Label* label) {
17   // Making label_font static to avoid the time penalty of DeriveFont for
18   // all but the first call.
19   static const gfx::Font label_font(gfx::Font().DeriveFont(1, gfx::Font::BOLD));
20   label->SetFont(label_font);
21   label->SetAutoColorReadabilityEnabled(false);
22   label->SetEnabledColor(SK_ColorWHITE);
23   label->SetBackgroundColor(SkColorSetARGB(0, 255, 255, 255));
24   label->SetShadowColors(SkColorSetARGB(64, 0, 0, 0),
25                          SkColorSetARGB(64, 0, 0, 0));
26   label->SetShadowOffset(0, 1);
27 }
28 
SetTrayImageItemBorder(views::View * tray_view,ShelfAlignment alignment)29 void SetTrayImageItemBorder(views::View* tray_view,
30                             ShelfAlignment alignment) {
31   if (alignment == SHELF_ALIGNMENT_BOTTOM ||
32       alignment == SHELF_ALIGNMENT_TOP) {
33     tray_view->set_border(views::Border::CreateEmptyBorder(
34         0, kTrayImageItemHorizontalPaddingBottomAlignment,
35         0, kTrayImageItemHorizontalPaddingBottomAlignment));
36   } else {
37     tray_view->set_border(views::Border::CreateEmptyBorder(
38         kTrayImageItemVerticalPaddingVerticalAlignment,
39         kTrayImageItemHorizontalPaddingVerticalAlignment,
40         kTrayImageItemVerticalPaddingVerticalAlignment,
41         kTrayImageItemHorizontalPaddingVerticalAlignment));
42   }
43 }
44 
SetTrayLabelItemBorder(TrayItemView * tray_view,ShelfAlignment alignment)45 void SetTrayLabelItemBorder(TrayItemView* tray_view,
46                             ShelfAlignment alignment) {
47   if (alignment == SHELF_ALIGNMENT_BOTTOM ||
48       alignment == SHELF_ALIGNMENT_TOP) {
49     tray_view->set_border(views::Border::CreateEmptyBorder(
50         0, kTrayLabelItemHorizontalPaddingBottomAlignment,
51         0, kTrayLabelItemHorizontalPaddingBottomAlignment));
52   } else {
53     // Center the label for vertical launcher alignment.
54     int horizontal_padding = std::max(0,
55         (tray_view->GetPreferredSize().width() -
56         tray_view->label()->GetPreferredSize().width()) / 2);
57     tray_view->set_border(views::Border::CreateEmptyBorder(
58         kTrayLabelItemVerticalPaddingVerticalAlignment,
59         horizontal_padding,
60         kTrayLabelItemVerticalPaddingVerticalAlignment,
61         horizontal_padding));
62   }
63 }
64 
65 }  // namespace internal
66 }  // namespace ash
67