Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(156)

Unified Diff: ash/system/tray/tray_info_label.cc

Issue 2957043002: Add a row in the network tray to inform users to turn Bluetooth on to enable Tether. (Closed)
Patch Set: khorimoto@ and jamescook@ comments Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ash/system/tray/tray_info_label.cc
diff --git a/ash/system/tray/tray_info_label.cc b/ash/system/tray/tray_info_label.cc
new file mode 100644
index 0000000000000000000000000000000000000000..2efbd6e0ac1919aa8aa1bfe75ab5671791b8df4e
--- /dev/null
+++ b/ash/system/tray/tray_info_label.cc
@@ -0,0 +1,77 @@
+// Copyright (c) 2017 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_info_label.h"
+
+#include "ash/system/tray/tray_popup_item_style.h"
+#include "ash/system/tray/tray_popup_utils.h"
+#include "ui/accessibility/ax_node_data.h"
+#include "ui/base/l10n/l10n_util.h"
+#include "ui/views/layout/fill_layout.h"
+
+namespace ash {
+
+TrayInfoLabel::TrayInfoLabel(TrayInfoLabel::Delegate* delegate, int message_id)
+ : ActionableView(nullptr /*owner*/, TrayPopupInkDropStyle::FILL_BOUNDS),
Kyle Horimoto 2017/07/12 22:45:58 nit: Spaces at beginning/end of comment: /* owner
lesliewatkins 2017/07/13 22:12:47 Done.
+ label_(TrayPopupUtils::CreateDefaultLabel()),
+ message_id_(message_id),
+ delegate_(delegate) {
+ SetLayoutManager(new views::FillLayout);
+
+ TriView* tri_view = TrayPopupUtils::CreateMultiTargetRowView();
+ tri_view->SetInsets(gfx::Insets(0,
+ kMenuExtraMarginFromLeftEdge +
+ kTrayPopupPaddingHorizontal -
+ kTrayPopupLabelHorizontalPadding,
+ 0, kTrayPopupPaddingHorizontal));
+ tri_view->SetContainerVisible(TriView::Container::START, false);
+ tri_view->SetContainerVisible(TriView::Container::END, false);
+ tri_view->AddView(TriView::Container::CENTER, label_);
+
+ AddChildView(tri_view);
+
+ Update(message_id);
+}
+
+void TrayInfoLabel::Update(int message_id) {
+ message_id_ = message_id;
+
+ TrayPopupItemStyle::FontStyle font_style;
+
+ if (IsClickable()) {
+ SetInkDropMode(InkDropHostView::InkDropMode::ON);
+ font_style = TrayPopupItemStyle::FontStyle::CLICKABLE_SYSTEM_INFO;
+ } else {
+ SetInkDropMode(InkDropHostView::InkDropMode::OFF);
+ font_style = TrayPopupItemStyle::FontStyle::SYSTEM_INFO;
+ }
+
+ const TrayPopupItemStyle style(font_style);
+ style.SetupLabel(label_);
+
+ label_->SetText(l10n_util::GetStringUTF16(message_id));
+}
+
+bool TrayInfoLabel::PerformAction(const ui::Event& event) {
+ if (IsClickable()) {
+ delegate_->OnLabelClicked(message_id_);
+ return true;
+ }
+ return false;
+}
+
+void TrayInfoLabel::GetAccessibleNodeData(ui::AXNodeData* node_data) {
+ if (IsClickable())
+ node_data->role = ui::AX_ROLE_BUTTON;
+ else
+ node_data->role = ui::AX_ROLE_LABEL_TEXT;
+}
+
+bool TrayInfoLabel::IsClickable() {
+ if (delegate_)
+ return delegate_->LabelIsClickable(message_id_);
+ return false;
+}
+
+} // namespace ash

Powered by Google App Engine
This is Rietveld 408576698