| Index: ash/system/chromeos/label_tray_view.cc
|
| diff --git a/ash/system/chromeos/label_tray_view.cc b/ash/system/chromeos/label_tray_view.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..12a3ba552915f2482ca2fd4f132748e1a7fa5338
|
| --- /dev/null
|
| +++ b/ash/system/chromeos/label_tray_view.cc
|
| @@ -0,0 +1,60 @@
|
| +// 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/chromeos/label_tray_view.h"
|
| +
|
| +#include "ash/system/tray/hover_highlight_view.h"
|
| +#include "ash/system/tray/tray_constants.h"
|
| +#include "ash/system/tray/tray_views.h"
|
| +#include "ash/system/tray/view_click_listener.h"
|
| +#include "ui/base/resource/resource_bundle.h"
|
| +#include "ui/gfx/font.h"
|
| +#include "ui/views/controls/label.h"
|
| +#include "ui/views/layout/fill_layout.h"
|
| +
|
| +namespace ash {
|
| +namespace internal {
|
| +
|
| +LabelTrayView::LabelTrayView(ViewClickListener* click_listener,
|
| + int icon_resource_id)
|
| + : click_listener_(click_listener),
|
| + icon_resource_id_(icon_resource_id) {
|
| + SetLayoutManager(new views::FillLayout());
|
| + SetVisible(false);
|
| +}
|
| +
|
| +LabelTrayView::~LabelTrayView() {
|
| +}
|
| +
|
| +void LabelTrayView::SetMessage(const base::string16& message) {
|
| + if (message_ == message)
|
| + return;
|
| +
|
| + message_ = message;
|
| + RemoveAllChildViews(true);
|
| + if (!message_.empty()) {
|
| + AddChildView(CreateChildView(message_));
|
| + SetVisible(true);
|
| + } else {
|
| + SetVisible(false);
|
| + }
|
| +}
|
| +
|
| +views::View* LabelTrayView::CreateChildView(
|
| + const base::string16& message) const {
|
| + ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
|
| + const gfx::ImageSkia* icon = rb.GetImageSkiaNamed(icon_resource_id_);
|
| + HoverHighlightView* child = new HoverHighlightView(click_listener_);
|
| + child->AddIconAndLabel(*icon, message, gfx::Font::NORMAL);
|
| + child->text_label()->SetMultiLine(true);
|
| + child->text_label()->SetAllowCharacterBreak(true);
|
| + child->set_border(views::Border::CreateEmptyBorder(0,
|
| + kTrayPopupPaddingHorizontal, 0, kTrayPopupPaddingHorizontal));
|
| + child->SetExpandable(true);
|
| + child->SetVisible(true);
|
| + return child;
|
| +}
|
| +
|
| +} // namespace internal
|
| +} // namespace ash
|
|
|