blob: 5a42c8089d6878edba4aec11e874d4d869909596 [file] [log] [blame]
// Copyright (c) 2012 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 "ash/system/tray/tray_utils.h"
#include "ash/common/material_design/material_design_controller.h"
#include "ash/shelf/wm_shelf_util.h"
#include "ash/system/tray/tray_constants.h"
#include "ash/system/tray/tray_item_view.h"
#include "ui/accessibility/ax_node_data.h"
#include "ui/gfx/font_list.h"
#include "ui/gfx/geometry/vector2d.h"
#include "ui/views/border.h"
#include "ui/views/controls/button/label_button.h"
#include "ui/views/controls/button/md_text_button.h"
#include "ui/views/controls/label.h"
namespace ash {
void SetupLabelForTray(views::Label* label) {
if (MaterialDesignController::IsShelfMaterial()) {
// The text is drawn on an transparent bg, so we must disable subpixel
// rendering.
label->SetSubpixelRenderingEnabled(false);
label->SetFontList(gfx::FontList().Derive(2, gfx::Font::NORMAL,
gfx::Font::Weight::MEDIUM));
} else {
label->SetFontList(
gfx::FontList().Derive(1, gfx::Font::NORMAL, gfx::Font::Weight::BOLD));
label->SetShadows(gfx::ShadowValues(
1,
gfx::ShadowValue(gfx::Vector2d(0, 1), 0, SkColorSetARGB(64, 0, 0, 0))));
label->SetAutoColorReadabilityEnabled(false);
label->SetEnabledColor(SK_ColorWHITE);
label->SetBackgroundColor(SkColorSetARGB(0, 255, 255, 255));
}
}
void SetTrayImageItemBorder(views::View* tray_view, ShelfAlignment alignment) {
if (MaterialDesignController::IsShelfMaterial())
return;
if (IsHorizontalAlignment(alignment)) {
tray_view->SetBorder(
views::CreateEmptyBorder(gfx::Insets(0, kTrayImageItemPadding)));
} else {
tray_view->SetBorder(views::CreateEmptyBorder(gfx::Insets(
kTrayImageItemPadding,
kTrayImageItemHorizontalPaddingVerticalAlignment)));
}
}
void SetTrayLabelItemBorder(TrayItemView* tray_view, ShelfAlignment alignment) {
if (MaterialDesignController::IsShelfMaterial())
return;
if (IsHorizontalAlignment(alignment)) {
tray_view->SetBorder(views::CreateEmptyBorder(
0, kTrayLabelItemHorizontalPaddingBottomAlignment, 0,
kTrayLabelItemHorizontalPaddingBottomAlignment));
} else {
// Center the label for vertical launcher alignment.
int horizontal_padding =
std::max(0, (tray_view->GetPreferredSize().width() -
tray_view->label()->GetPreferredSize().width()) /
2);
tray_view->SetBorder(views::CreateEmptyBorder(
kTrayLabelItemVerticalPaddingVerticalAlignment, horizontal_padding,
kTrayLabelItemVerticalPaddingVerticalAlignment, horizontal_padding));
}
}
} // namespace ash