Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / ash / system / tray / tray_utils.cc
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_list.h"
10 #include "ui/views/border.h"
11 #include "ui/views/controls/label.h"
12
13 namespace ash {
14 namespace internal {
15
16 void SetupLabelForTray(views::Label* label) {
17   // Making label_font static to avoid the time penalty of Derive for all but
18   // the first call.
19   static const gfx::FontList label_font_list(
20       gfx::FontList().Derive(1, gfx::Font::BOLD));
21   label->SetFontList(label_font_list);
22   label->SetAutoColorReadabilityEnabled(false);
23   label->SetEnabledColor(SK_ColorWHITE);
24   label->SetBackgroundColor(SkColorSetARGB(0, 255, 255, 255));
25   label->SetShadowColors(SkColorSetARGB(64, 0, 0, 0),
26                          SkColorSetARGB(64, 0, 0, 0));
27   label->SetShadowOffset(0, 1);
28 }
29
30 void SetTrayImageItemBorder(views::View* tray_view,
31                             ShelfAlignment alignment) {
32   if (alignment == SHELF_ALIGNMENT_BOTTOM ||
33       alignment == SHELF_ALIGNMENT_TOP) {
34     tray_view->SetBorder(views::Border::CreateEmptyBorder(
35         0,
36         kTrayImageItemHorizontalPaddingBottomAlignment,
37         0,
38         kTrayImageItemHorizontalPaddingBottomAlignment));
39   } else {
40     tray_view->SetBorder(views::Border::CreateEmptyBorder(
41         kTrayImageItemVerticalPaddingVerticalAlignment,
42         kTrayImageItemHorizontalPaddingVerticalAlignment,
43         kTrayImageItemVerticalPaddingVerticalAlignment,
44         kTrayImageItemHorizontalPaddingVerticalAlignment));
45   }
46 }
47
48 void SetTrayLabelItemBorder(TrayItemView* tray_view,
49                             ShelfAlignment alignment) {
50   if (alignment == SHELF_ALIGNMENT_BOTTOM ||
51       alignment == SHELF_ALIGNMENT_TOP) {
52     tray_view->SetBorder(views::Border::CreateEmptyBorder(
53         0,
54         kTrayLabelItemHorizontalPaddingBottomAlignment,
55         0,
56         kTrayLabelItemHorizontalPaddingBottomAlignment));
57   } else {
58     // Center the label for vertical launcher alignment.
59     int horizontal_padding = std::max(0,
60         (tray_view->GetPreferredSize().width() -
61         tray_view->label()->GetPreferredSize().width()) / 2);
62     tray_view->SetBorder(views::Border::CreateEmptyBorder(
63         kTrayLabelItemVerticalPaddingVerticalAlignment,
64         horizontal_padding,
65         kTrayLabelItemVerticalPaddingVerticalAlignment,
66         horizontal_padding));
67   }
68 }
69
70 }  // namespace internal
71 }  // namespace ash