OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ash/common/system/chromeos/tray_tracing.h" | 5 #include "ash/common/system/chromeos/tray_tracing.h" |
6 | 6 |
7 #include "ash/common/material_design/material_design_controller.h" | |
8 #include "ash/common/metrics/user_metrics_action.h" | 7 #include "ash/common/metrics/user_metrics_action.h" |
9 #include "ash/common/system/tray/actionable_view.h" | 8 #include "ash/common/system/tray/actionable_view.h" |
10 #include "ash/common/system/tray/fixed_sized_image_view.h" | 9 #include "ash/common/system/tray/fixed_sized_image_view.h" |
11 #include "ash/common/system/tray/system_tray.h" | 10 #include "ash/common/system/tray/system_tray.h" |
12 #include "ash/common/system/tray/system_tray_controller.h" | 11 #include "ash/common/system/tray/system_tray_controller.h" |
13 #include "ash/common/system/tray/system_tray_notifier.h" | 12 #include "ash/common/system/tray/system_tray_notifier.h" |
14 #include "ash/common/system/tray/tray_constants.h" | 13 #include "ash/common/system/tray/tray_constants.h" |
15 #include "ash/common/system/tray/tray_popup_item_style.h" | 14 #include "ash/common/system/tray/tray_popup_item_style.h" |
16 #include "ash/common/system/tray/tray_popup_utils.h" | 15 #include "ash/common/system/tray/tray_popup_utils.h" |
17 #include "ash/common/system/tray/tri_view.h" | 16 #include "ash/common/system/tray/tri_view.h" |
18 #include "ash/common/wm_shell.h" | 17 #include "ash/common/wm_shell.h" |
19 #include "ash/resources/vector_icons/vector_icons.h" | 18 #include "ash/resources/vector_icons/vector_icons.h" |
20 #include "grit/ash_resources.h" | |
21 #include "grit/ash_strings.h" | 19 #include "grit/ash_strings.h" |
22 #include "ui/base/resource/resource_bundle.h" | 20 #include "ui/base/resource/resource_bundle.h" |
23 #include "ui/gfx/image/image.h" | 21 #include "ui/gfx/image/image.h" |
24 #include "ui/gfx/paint_vector_icon.h" | 22 #include "ui/gfx/paint_vector_icon.h" |
25 #include "ui/views/controls/image_view.h" | 23 #include "ui/views/controls/image_view.h" |
26 #include "ui/views/controls/label.h" | 24 #include "ui/views/controls/label.h" |
27 #include "ui/views/layout/fill_layout.h" | 25 #include "ui/views/layout/fill_layout.h" |
28 | 26 |
29 namespace ash { | 27 namespace ash { |
30 namespace tray { | 28 namespace tray { |
31 | 29 |
32 class DefaultTracingView : public ActionableView { | 30 class DefaultTracingView : public ActionableView { |
33 public: | 31 public: |
34 explicit DefaultTracingView(SystemTrayItem* owner) | 32 explicit DefaultTracingView(SystemTrayItem* owner) |
35 : ActionableView(owner, TrayPopupInkDropStyle::FILL_BOUNDS) { | 33 : ActionableView(owner, TrayPopupInkDropStyle::FILL_BOUNDS) { |
36 ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance(); | |
37 | |
38 SetLayoutManager(new views::FillLayout); | 34 SetLayoutManager(new views::FillLayout); |
39 TriView* tri_view = TrayPopupUtils::CreateDefaultRowView(); | 35 TriView* tri_view = TrayPopupUtils::CreateDefaultRowView(); |
40 AddChildView(tri_view); | 36 AddChildView(tri_view); |
| 37 |
41 auto image = TrayPopupUtils::CreateMainImageView(); | 38 auto image = TrayPopupUtils::CreateMainImageView(); |
42 tri_view->AddView(TriView::Container::START, image); | 39 tri_view->AddView(TriView::Container::START, image); |
43 | 40 |
44 auto label = TrayPopupUtils::CreateDefaultLabel(); | 41 auto label = TrayPopupUtils::CreateDefaultLabel(); |
45 label->SetMultiLine(true); | 42 label->SetMultiLine(true); |
46 label->SetText(bundle.GetLocalizedString(IDS_ASH_STATUS_TRAY_TRACING)); | 43 label->SetText(ui::ResourceBundle::GetSharedInstance().GetLocalizedString( |
| 44 IDS_ASH_STATUS_TRAY_TRACING)); |
47 tri_view->AddView(TriView::Container::CENTER, label); | 45 tri_view->AddView(TriView::Container::CENTER, label); |
48 | 46 |
49 if (MaterialDesignController::UseMaterialDesignSystemIcons()) { | 47 TrayPopupItemStyle style(TrayPopupItemStyle::FontStyle::DEFAULT_VIEW_LABEL); |
50 TrayPopupItemStyle style( | 48 style.SetupLabel(label); |
51 TrayPopupItemStyle::FontStyle::DEFAULT_VIEW_LABEL); | 49 image->SetImage( |
52 style.SetupLabel(label); | 50 gfx::CreateVectorIcon(kSystemMenuTracingIcon, style.GetIconColor())); |
53 image->SetImage( | |
54 gfx::CreateVectorIcon(kSystemMenuTracingIcon, style.GetIconColor())); | |
55 | 51 |
56 SetInkDropMode(InkDropHostView::InkDropMode::ON); | 52 SetInkDropMode(InkDropHostView::InkDropMode::ON); |
57 } else { | |
58 // The icon doesn't change in non-md. | |
59 image->SetImage( | |
60 bundle.GetImageNamed(IDR_AURA_UBER_TRAY_TRACING).ToImageSkia()); | |
61 } | |
62 } | 53 } |
63 | 54 |
64 ~DefaultTracingView() override {} | 55 ~DefaultTracingView() override {} |
65 | 56 |
66 private: | 57 private: |
67 bool PerformAction(const ui::Event& event) override { | 58 bool PerformAction(const ui::Event& event) override { |
68 WmShell::Get()->RecordUserMetricsAction( | 59 WmShell::Get()->RecordUserMetricsAction( |
69 UMA_STATUS_AREA_TRACING_DEFAULT_SELECTED); | 60 UMA_STATUS_AREA_TRACING_DEFAULT_SELECTED); |
70 WmShell::Get()->system_tray_controller()->ShowChromeSlow(); | 61 WmShell::Get()->system_tray_controller()->ShowChromeSlow(); |
71 CloseSystemBubble(); | 62 CloseSystemBubble(); |
72 return true; | 63 return true; |
73 } | 64 } |
74 | 65 |
75 DISALLOW_COPY_AND_ASSIGN(DefaultTracingView); | 66 DISALLOW_COPY_AND_ASSIGN(DefaultTracingView); |
76 }; | 67 }; |
77 | 68 |
78 } // namespace tray | 69 } // namespace tray |
79 | 70 |
80 //////////////////////////////////////////////////////////////////////////////// | 71 //////////////////////////////////////////////////////////////////////////////// |
81 // ash::TrayTracing | 72 // ash::TrayTracing |
82 | 73 |
83 TrayTracing::TrayTracing(SystemTray* system_tray) | 74 TrayTracing::TrayTracing(SystemTray* system_tray) |
84 : TrayImageItem(system_tray, IDR_AURA_UBER_TRAY_TRACING, UMA_TRACING), | 75 : TrayImageItem(system_tray, kSystemTrayTracingIcon, UMA_TRACING), |
85 default_(nullptr) { | 76 default_(nullptr) { |
86 DCHECK(system_tray); | 77 DCHECK(system_tray); |
87 WmShell::Get()->system_tray_notifier()->AddTracingObserver(this); | 78 WmShell::Get()->system_tray_notifier()->AddTracingObserver(this); |
88 } | 79 } |
89 | 80 |
90 TrayTracing::~TrayTracing() { | 81 TrayTracing::~TrayTracing() { |
91 WmShell::Get()->system_tray_notifier()->RemoveTracingObserver(this); | 82 WmShell::Get()->system_tray_notifier()->RemoveTracingObserver(this); |
92 } | 83 } |
93 | 84 |
94 void TrayTracing::SetTrayIconVisible(bool visible) { | 85 void TrayTracing::SetTrayIconVisible(bool visible) { |
(...skipping 20 matching lines...) Expand all Loading... |
115 default_ = NULL; | 106 default_ = NULL; |
116 } | 107 } |
117 | 108 |
118 void TrayTracing::DestroyDetailedView() {} | 109 void TrayTracing::DestroyDetailedView() {} |
119 | 110 |
120 void TrayTracing::OnTracingModeChanged(bool value) { | 111 void TrayTracing::OnTracingModeChanged(bool value) { |
121 SetTrayIconVisible(value); | 112 SetTrayIconVisible(value); |
122 } | 113 } |
123 | 114 |
124 } // namespace ash | 115 } // namespace ash |
OLD | NEW |