diff options
Diffstat (limited to 'chromium/ash/system/tray/tray_utils.cc')
-rw-r--r-- | chromium/ash/system/tray/tray_utils.cc | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/chromium/ash/system/tray/tray_utils.cc b/chromium/ash/system/tray/tray_utils.cc new file mode 100644 index 00000000000..5f29a2e8f71 --- /dev/null +++ b/chromium/ash/system/tray/tray_utils.cc @@ -0,0 +1,65 @@ +// 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/system/tray/tray_constants.h" +#include "ash/system/tray/tray_item_view.h" +#include "ui/gfx/font.h" +#include "ui/views/border.h" +#include "ui/views/controls/label.h" + +namespace ash { +namespace internal { + +void SetupLabelForTray(views::Label* label) { + // Making label_font static to avoid the time penalty of DeriveFont for + // all but the first call. + static const gfx::Font label_font(gfx::Font().DeriveFont(1, gfx::Font::BOLD)); + label->SetFont(label_font); + label->SetAutoColorReadabilityEnabled(false); + label->SetEnabledColor(SK_ColorWHITE); + label->SetBackgroundColor(SkColorSetARGB(0, 255, 255, 255)); + label->SetShadowColors(SkColorSetARGB(64, 0, 0, 0), + SkColorSetARGB(64, 0, 0, 0)); + label->SetShadowOffset(0, 1); +} + +void SetTrayImageItemBorder(views::View* tray_view, + ShelfAlignment alignment) { + if (alignment == SHELF_ALIGNMENT_BOTTOM || + alignment == SHELF_ALIGNMENT_TOP) { + tray_view->set_border(views::Border::CreateEmptyBorder( + 0, kTrayImageItemHorizontalPaddingBottomAlignment, + 0, kTrayImageItemHorizontalPaddingBottomAlignment)); + } else { + tray_view->set_border(views::Border::CreateEmptyBorder( + kTrayImageItemVerticalPaddingVerticalAlignment, + kTrayImageItemHorizontalPaddingVerticalAlignment, + kTrayImageItemVerticalPaddingVerticalAlignment, + kTrayImageItemHorizontalPaddingVerticalAlignment)); + } +} + +void SetTrayLabelItemBorder(TrayItemView* tray_view, + ShelfAlignment alignment) { + if (alignment == SHELF_ALIGNMENT_BOTTOM || + alignment == SHELF_ALIGNMENT_TOP) { + tray_view->set_border(views::Border::CreateEmptyBorder( + 0, kTrayLabelItemHorizontalPaddingBottomAlignment, + 0, kTrayLabelItemHorizontalPaddingBottomAlignment)); + } else { + // Center the label for vertical launcher alignment. + int horizontal_padding = (tray_view->GetPreferredSize().width() - + tray_view->label()->GetPreferredSize().width()) / 2; + tray_view->set_border(views::Border::CreateEmptyBorder( + kTrayLabelItemVerticalPaddingVeriticalAlignment, + horizontal_padding, + kTrayLabelItemVerticalPaddingVeriticalAlignment, + horizontal_padding)); + } +} + +} // namespace internal +} // namespace ash |