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

Side by Side Diff: ash/system/chromeos/enterprise/tray_enterprise.cc

Issue 14507003: Add tray warning for Locally managed users. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix win-aura compile error Created 7 years, 7 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 unified diff | Download patch
« no previous file with comments | « ash/system/chromeos/enterprise/tray_enterprise.h ('k') | ash/system/chromeos/label_tray_view.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/system/chromeos/enterprise/tray_enterprise.h" 5 #include "ash/system/chromeos/enterprise/tray_enterprise.h"
6 6
7 #include "ash/system/tray/hover_highlight_view.h" 7 #include "ash/system/chromeos/label_tray_view.h"
8 #include "ash/system/tray/system_tray_notifier.h" 8 #include "ash/system/tray/system_tray_notifier.h"
9 #include "ash/system/tray/tray_constants.h"
10 #include "ash/system/tray/tray_views.h"
11 #include "ash/system/user/login_status.h" 9 #include "ash/system/user/login_status.h"
12 #include "base/logging.h" 10 #include "base/logging.h"
13 #include "grit/ash_resources.h" 11 #include "grit/ash_resources.h"
14 #include "ui/base/resource/resource_bundle.h"
15 #include "ui/gfx/font.h"
16 #include "ui/views/controls/label.h"
17 #include "ui/views/layout/fill_layout.h"
18 12
19 namespace ash { 13 namespace ash {
20 namespace internal { 14 namespace internal {
21 15
22 class EnterpriseDefaultView : public views::View {
23 public:
24 explicit EnterpriseDefaultView(ViewClickListener* click_listener);
25 virtual ~EnterpriseDefaultView();
26 void SetMessage(const base::string16& message);
27 private:
28 views::View* CreateChildView(const base::string16& message) const;
29
30 ViewClickListener* click_listener_;
31 base::string16 message_;
32
33 DISALLOW_COPY_AND_ASSIGN(EnterpriseDefaultView);
34 };
35
36 EnterpriseDefaultView::EnterpriseDefaultView(
37 ViewClickListener* click_listener)
38 : click_listener_(click_listener) {
39 SetLayoutManager(new views::FillLayout());
40 SetVisible(false);
41 }
42
43 EnterpriseDefaultView::~EnterpriseDefaultView() {
44 }
45
46 void EnterpriseDefaultView::SetMessage(const base::string16& message) {
47 if (message_ == message)
48 return;
49
50 message_ = message;
51 RemoveAllChildViews(true);
52 if (!message_.empty()) {
53 AddChildView(CreateChildView(message_));
54 SetVisible(true);
55 } else {
56 SetVisible(false);
57 }
58 }
59
60 views::View* EnterpriseDefaultView::CreateChildView(
61 const base::string16& message) const {
62 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
63 const gfx::ImageSkia* icon =
64 rb.GetImageSkiaNamed(IDR_AURA_UBER_TRAY_ENTERPRISE_DARK);
65 HoverHighlightView* child = new HoverHighlightView(click_listener_);
66 child->AddIconAndLabel(*icon, message, gfx::Font::NORMAL);
67 child->text_label()->SetMultiLine(true);
68 child->text_label()->SetAllowCharacterBreak(true);
69 child->set_border(views::Border::CreateEmptyBorder(0,
70 kTrayPopupPaddingHorizontal, 0, kTrayPopupPaddingHorizontal));
71 child->SetExpandable(true);
72 child->SetVisible(true);
73 return child;
74 }
75
76 TrayEnterprise::TrayEnterprise(SystemTray* system_tray) 16 TrayEnterprise::TrayEnterprise(SystemTray* system_tray)
77 : SystemTrayItem(system_tray), 17 : SystemTrayItem(system_tray),
78 default_view_(NULL) { 18 tray_view_(NULL) {
79 Shell::GetInstance()->system_tray_notifier()-> 19 Shell::GetInstance()->system_tray_notifier()->
80 AddEnterpriseDomainObserver(this); 20 AddEnterpriseDomainObserver(this);
81 } 21 }
82 22
83 TrayEnterprise::~TrayEnterprise() { 23 TrayEnterprise::~TrayEnterprise() {
84 Shell::GetInstance()->system_tray_notifier()-> 24 Shell::GetInstance()->system_tray_notifier()->
85 RemoveEnterpriseDomainObserver(this); 25 RemoveEnterpriseDomainObserver(this);
86 } 26 }
87 27
88 void TrayEnterprise::UpdateEnterpriseMessage() { 28 void TrayEnterprise::UpdateEnterpriseMessage() {
89 base::string16 message = Shell::GetInstance()->system_tray_delegate()-> 29 base::string16 message = Shell::GetInstance()->system_tray_delegate()->
90 GetEnterpriseMessage(); 30 GetEnterpriseMessage();
91 if (default_view_) 31 if (tray_view_)
92 default_view_->SetMessage(message); 32 tray_view_->SetMessage(message);
93 } 33 }
94 34
95 views::View* TrayEnterprise::CreateDefaultView(user::LoginStatus status) { 35 views::View* TrayEnterprise::CreateDefaultView(user::LoginStatus status) {
96 CHECK(default_view_ == NULL); 36 CHECK(tray_view_ == NULL);
97 // For public accounts, enterprise ownership is indicated in the user details 37 // For public accounts, enterprise ownership is indicated in the user details
98 // instead. 38 // instead.
99 if (status == ash::user::LOGGED_IN_PUBLIC) 39 if (status == ash::user::LOGGED_IN_PUBLIC)
100 return NULL; 40 return NULL;
101 default_view_ = new EnterpriseDefaultView(this); 41 tray_view_ = new LabelTrayView(this, IDR_AURA_UBER_TRAY_ENTERPRISE_DARK);
102 UpdateEnterpriseMessage(); 42 UpdateEnterpriseMessage();
103 return default_view_; 43 return tray_view_;
104 } 44 }
105 45
106 void TrayEnterprise::DestroyDefaultView() { 46 void TrayEnterprise::DestroyDefaultView() {
107 default_view_ = NULL; 47 tray_view_ = NULL;
108 } 48 }
109 49
110 void TrayEnterprise::OnEnterpriseDomainChanged() { 50 void TrayEnterprise::OnEnterpriseDomainChanged() {
111 UpdateEnterpriseMessage(); 51 UpdateEnterpriseMessage();
112 } 52 }
113 53
114 void TrayEnterprise::OnViewClicked(views::View* sender) { 54 void TrayEnterprise::OnViewClicked(views::View* sender) {
115 Shell::GetInstance()->system_tray_delegate()->ShowEnterpriseInfo(); 55 Shell::GetInstance()->system_tray_delegate()->ShowEnterpriseInfo();
116 } 56 }
117 57
118 } // namespace internal 58 } // namespace internal
119 } // namespace ash 59 } // namespace ash
120 60
OLDNEW
« no previous file with comments | « ash/system/chromeos/enterprise/tray_enterprise.h ('k') | ash/system/chromeos/label_tray_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698