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
13namespace ash {
14
15void SetupLabelForTray(views::Label* label) {
16  label->SetFontList(gfx::FontList().Derive(1, gfx::Font::BOLD));
17  label->SetAutoColorReadabilityEnabled(false);
18  label->SetEnabledColor(SK_ColorWHITE);
19  label->SetBackgroundColor(SkColorSetARGB(0, 255, 255, 255));
20  label->SetShadows(gfx::ShadowValues(
21      1, gfx::ShadowValue(gfx::Point(0, 1), 0, SkColorSetARGB(64, 0, 0, 0))));
22}
23
24void SetTrayImageItemBorder(views::View* tray_view,
25                            ShelfAlignment alignment) {
26  if (alignment == SHELF_ALIGNMENT_BOTTOM ||
27      alignment == SHELF_ALIGNMENT_TOP) {
28    tray_view->SetBorder(views::Border::CreateEmptyBorder(
29        0,
30        kTrayImageItemHorizontalPaddingBottomAlignment,
31        0,
32        kTrayImageItemHorizontalPaddingBottomAlignment));
33  } else {
34    tray_view->SetBorder(views::Border::CreateEmptyBorder(
35        kTrayImageItemVerticalPaddingVerticalAlignment,
36        kTrayImageItemHorizontalPaddingVerticalAlignment,
37        kTrayImageItemVerticalPaddingVerticalAlignment,
38        kTrayImageItemHorizontalPaddingVerticalAlignment));
39  }
40}
41
42void SetTrayLabelItemBorder(TrayItemView* tray_view,
43                            ShelfAlignment alignment) {
44  if (alignment == SHELF_ALIGNMENT_BOTTOM ||
45      alignment == SHELF_ALIGNMENT_TOP) {
46    tray_view->SetBorder(views::Border::CreateEmptyBorder(
47        0,
48        kTrayLabelItemHorizontalPaddingBottomAlignment,
49        0,
50        kTrayLabelItemHorizontalPaddingBottomAlignment));
51  } else {
52    // Center the label for vertical launcher alignment.
53    int horizontal_padding = std::max(0,
54        (tray_view->GetPreferredSize().width() -
55        tray_view->label()->GetPreferredSize().width()) / 2);
56    tray_view->SetBorder(views::Border::CreateEmptyBorder(
57        kTrayLabelItemVerticalPaddingVerticalAlignment,
58        horizontal_padding,
59        kTrayLabelItemVerticalPaddingVerticalAlignment,
60        horizontal_padding));
61  }
62}
63
64}  // namespace ash
65