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

Side by Side Diff: ash/system/chromeos/network/tray_network.cc

Issue 11415014: Stop using shell::GetInstance()->system_tray() in system tray items (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Removed unnecessary forward declarations. Renamed |tray| to |owner|. Created 8 years, 1 month 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 | Annotate | Revision Log
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/network/tray_network.h" 5 #include "ash/system/chromeos/network/tray_network.h"
6 6
7 #include "ash/shell.h" 7 #include "ash/shell.h"
8 #include "ash/system/chromeos/network/network_list_detailed_view_base.h" 8 #include "ash/system/chromeos/network/network_list_detailed_view_base.h"
9 #include "ash/system/tray/system_tray.h" 9 #include "ash/system/tray/system_tray.h"
10 #include "ash/system/tray/system_tray_delegate.h" 10 #include "ash/system/tray/system_tray_delegate.h"
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 72
73 MessageMap& messages() { return messages_; } 73 MessageMap& messages() { return messages_; }
74 const MessageMap& messages() const { return messages_; } 74 const MessageMap& messages() const { return messages_; }
75 75
76 private: 76 private:
77 MessageMap messages_; 77 MessageMap messages_;
78 }; 78 };
79 79
80 class NetworkTrayView : public TrayItemView { 80 class NetworkTrayView : public TrayItemView {
81 public: 81 public:
82 NetworkTrayView(ColorTheme size, bool tray_icon) 82 NetworkTrayView(SystemTrayItem* owner, ColorTheme size, bool tray_icon)
83 : color_theme_(size), tray_icon_(tray_icon) { 83 : TrayItemView(owner), color_theme_(size), tray_icon_(tray_icon) {
84 SetLayoutManager( 84 SetLayoutManager(
85 new views::BoxLayout(views::BoxLayout::kHorizontal, 0, 0, 0)); 85 new views::BoxLayout(views::BoxLayout::kHorizontal, 0, 0, 0));
86 86
87 image_view_ = color_theme_ == DARK ? 87 image_view_ = color_theme_ == DARK ?
88 new FixedSizedImageView(0, kTrayPopupItemHeight) : 88 new FixedSizedImageView(0, kTrayPopupItemHeight) :
89 new views::ImageView; 89 new views::ImageView;
90 AddChildView(image_view_); 90 AddChildView(image_view_);
91 91
92 NetworkIconInfo info; 92 NetworkIconInfo info;
93 Shell::GetInstance()->tray_delegate()-> 93 Shell::GetInstance()->tray_delegate()->
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 SetLabel(info.description); 129 SetLabel(info.description);
130 SetAccessibleName(info.description); 130 SetAccessibleName(info.description);
131 } 131 }
132 132
133 private: 133 private:
134 DISALLOW_COPY_AND_ASSIGN(NetworkDefaultView); 134 DISALLOW_COPY_AND_ASSIGN(NetworkDefaultView);
135 }; 135 };
136 136
137 class NetworkListDetailedView : public NetworkListDetailedViewBase { 137 class NetworkListDetailedView : public NetworkListDetailedViewBase {
138 public: 138 public:
139 NetworkListDetailedView(user::LoginStatus login, int header_string_id) 139 NetworkListDetailedView(SystemTrayItem* owner,
140 : NetworkListDetailedViewBase(login, header_string_id), 140 user::LoginStatus login,
141 int header_string_id)
142 : NetworkListDetailedViewBase(owner, login, header_string_id),
141 airplane_(NULL), 143 airplane_(NULL),
142 button_wifi_(NULL), 144 button_wifi_(NULL),
143 button_mobile_(NULL), 145 button_mobile_(NULL),
144 view_mobile_account_(NULL), 146 view_mobile_account_(NULL),
145 setup_mobile_account_(NULL), 147 setup_mobile_account_(NULL),
146 other_wifi_(NULL), 148 other_wifi_(NULL),
147 turn_on_wifi_(NULL), 149 turn_on_wifi_(NULL),
148 other_mobile_(NULL) { 150 other_mobile_(NULL) {
149 } 151 }
150 152
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after
354 views::View* setup_mobile_account_; 356 views::View* setup_mobile_account_;
355 TrayPopupLabelButton* other_wifi_; 357 TrayPopupLabelButton* other_wifi_;
356 TrayPopupLabelButton* turn_on_wifi_; 358 TrayPopupLabelButton* turn_on_wifi_;
357 TrayPopupLabelButton* other_mobile_; 359 TrayPopupLabelButton* other_mobile_;
358 360
359 DISALLOW_COPY_AND_ASSIGN(NetworkListDetailedView); 361 DISALLOW_COPY_AND_ASSIGN(NetworkListDetailedView);
360 }; 362 };
361 363
362 class NetworkWifiDetailedView : public NetworkDetailedView { 364 class NetworkWifiDetailedView : public NetworkDetailedView {
363 public: 365 public:
364 explicit NetworkWifiDetailedView(bool wifi_enabled) { 366 NetworkWifiDetailedView(SystemTrayItem* owner, bool wifi_enabled)
367 : NetworkDetailedView(owner) {
msw 2012/11/16 20:09:04 nit: indent one more space.
bartfab (slow) 2012/11/19 17:15:31 Done.
365 SetLayoutManager(new views::BoxLayout(views::BoxLayout::kHorizontal, 368 SetLayoutManager(new views::BoxLayout(views::BoxLayout::kHorizontal,
366 kTrayPopupPaddingHorizontal, 369 kTrayPopupPaddingHorizontal,
367 10, 370 10,
368 kTrayPopupPaddingBetweenItems)); 371 kTrayPopupPaddingBetweenItems));
369 ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance(); 372 ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance();
370 views::ImageView* image = new views::ImageView; 373 views::ImageView* image = new views::ImageView;
371 const int image_id = wifi_enabled ? 374 const int image_id = wifi_enabled ?
372 IDR_AURA_UBER_TRAY_WIFI_ENABLED : IDR_AURA_UBER_TRAY_WIFI_DISABLED; 375 IDR_AURA_UBER_TRAY_WIFI_ENABLED : IDR_AURA_UBER_TRAY_WIFI_DISABLED;
373 image->SetImage(bundle.GetImageNamed(image_id).ToImageSkia()); 376 image->SetImage(bundle.GetImageNamed(image_id).ToImageSkia());
374 AddChildView(image); 377 AddChildView(image);
(...skipping 21 matching lines...) Expand all
396 399
397 virtual void Update() OVERRIDE {} 400 virtual void Update() OVERRIDE {}
398 401
399 private: 402 private:
400 DISALLOW_COPY_AND_ASSIGN(NetworkWifiDetailedView); 403 DISALLOW_COPY_AND_ASSIGN(NetworkWifiDetailedView);
401 }; 404 };
402 405
403 class NetworkMessageView : public views::View, 406 class NetworkMessageView : public views::View,
404 public views::LinkListener { 407 public views::LinkListener {
405 public: 408 public:
406 NetworkMessageView(TrayNetwork* tray, 409 NetworkMessageView(TrayNetwork* owner,
407 TrayNetwork::MessageType message_type, 410 TrayNetwork::MessageType message_type,
408 const NetworkMessages::Message& network_msg) 411 const NetworkMessages::Message& network_msg)
409 : tray_(tray), 412 : owner_(owner),
410 message_type_(message_type) { 413 message_type_(message_type) {
411 SetLayoutManager( 414 SetLayoutManager(
412 new views::BoxLayout(views::BoxLayout::kVertical, 0, 0, 1)); 415 new views::BoxLayout(views::BoxLayout::kVertical, 0, 0, 1));
413 416
414 if (!network_msg.title.empty()) { 417 if (!network_msg.title.empty()) {
415 views::Label* title = new views::Label(network_msg.title); 418 views::Label* title = new views::Label(network_msg.title);
416 title->SetHorizontalAlignment(gfx::ALIGN_LEFT); 419 title->SetHorizontalAlignment(gfx::ALIGN_LEFT);
417 title->SetFont(title->font().DeriveFont(0, gfx::Font::BOLD)); 420 title->SetFont(title->font().DeriveFont(0, gfx::Font::BOLD));
418 AddChildView(title); 421 AddChildView(title);
419 } 422 }
(...skipping 17 matching lines...) Expand all
437 AddChildView(link); 440 AddChildView(link);
438 } 441 }
439 } 442 }
440 } 443 }
441 444
442 virtual ~NetworkMessageView() { 445 virtual ~NetworkMessageView() {
443 } 446 }
444 447
445 // Overridden from views::LinkListener. 448 // Overridden from views::LinkListener.
446 virtual void LinkClicked(views::Link* source, int event_flags) OVERRIDE { 449 virtual void LinkClicked(views::Link* source, int event_flags) OVERRIDE {
447 tray_->LinkClicked(message_type_, source->id()); 450 owner_->LinkClicked(message_type_, source->id());
448 } 451 }
449 452
450 TrayNetwork::MessageType message_type() const { return message_type_; } 453 TrayNetwork::MessageType message_type() const { return message_type_; }
451 454
452 private: 455 private:
453 TrayNetwork* tray_; 456 TrayNetwork* owner_;
454 TrayNetwork::MessageType message_type_; 457 TrayNetwork::MessageType message_type_;
455 458
456 DISALLOW_COPY_AND_ASSIGN(NetworkMessageView); 459 DISALLOW_COPY_AND_ASSIGN(NetworkMessageView);
457 }; 460 };
458 461
459 class NetworkNotificationView : public TrayNotificationView { 462 class NetworkNotificationView : public TrayNotificationView {
460 public: 463 public:
461 explicit NetworkNotificationView(TrayNetwork* tray) 464 explicit NetworkNotificationView(TrayNetwork* owner)
462 : TrayNotificationView(tray, 0) { 465 : TrayNotificationView(owner, 0) {
463 CreateMessageView(); 466 CreateMessageView();
464 InitView(network_message_view_); 467 InitView(network_message_view_);
465 SetIconImage(*ResourceBundle::GetSharedInstance().GetImageSkiaNamed( 468 SetIconImage(*ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
466 GetMessageIcon(network_message_view_->message_type()))); 469 GetMessageIcon(network_message_view_->message_type())));
467 } 470 }
468 471
469 // Overridden from TrayNotificationView. 472 // Overridden from TrayNotificationView.
470 virtual void OnClose() OVERRIDE { 473 virtual void OnClose() OVERRIDE {
471 tray_network()->ClearNetworkMessage(network_message_view_->message_type()); 474 tray_network()->ClearNetworkMessage(network_message_view_->message_type());
472 } 475 }
473 476
474 virtual void OnClickAction() OVERRIDE { 477 virtual void OnClickAction() OVERRIDE {
475 if (network_message_view_->message_type() != 478 if (network_message_view_->message_type() !=
476 TrayNetwork::MESSAGE_DATA_PROMO) 479 TrayNetwork::MESSAGE_DATA_PROMO)
477 tray()->PopupDetailedView(0, true); 480 owner()->PopupDetailedView(0, true);
478 } 481 }
479 482
480 void Update() { 483 void Update() {
481 CreateMessageView(); 484 CreateMessageView();
482 UpdateViewAndImage(network_message_view_, 485 UpdateViewAndImage(network_message_view_,
483 *ResourceBundle::GetSharedInstance().GetImageSkiaNamed( 486 *ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
484 GetMessageIcon(network_message_view_->message_type()))); 487 GetMessageIcon(network_message_view_->message_type())));
485 } 488 }
486 489
487 private: 490 private:
488 TrayNetwork* tray_network() { 491 TrayNetwork* tray_network() {
489 return static_cast<TrayNetwork*>(tray()); 492 return static_cast<TrayNetwork*>(owner());
490 } 493 }
491 494
492 void CreateMessageView() { 495 void CreateMessageView() {
493 // Display the first (highest priority) message. 496 // Display the first (highest priority) message.
494 CHECK(!tray_network()->messages()->messages().empty()); 497 CHECK(!tray_network()->messages()->messages().empty());
495 NetworkMessages::MessageMap::const_iterator iter = 498 NetworkMessages::MessageMap::const_iterator iter =
496 tray_network()->messages()->messages().begin(); 499 tray_network()->messages()->messages().begin();
497 network_message_view_ = 500 network_message_view_ =
498 new NetworkMessageView(tray_network(), iter->first, iter->second); 501 new NetworkMessageView(tray_network(), iter->first, iter->second);
499 } 502 }
500 503
501 tray::NetworkMessageView* network_message_view_; 504 tray::NetworkMessageView* network_message_view_;
502 505
503 DISALLOW_COPY_AND_ASSIGN(NetworkNotificationView); 506 DISALLOW_COPY_AND_ASSIGN(NetworkNotificationView);
504 }; 507 };
505 508
506 } // namespace tray 509 } // namespace tray
507 510
508 TrayNetwork::TrayNetwork() 511 TrayNetwork::TrayNetwork(SystemTray* system_tray)
509 : tray_(NULL), 512 : SystemTrayItem(system_tray),
513 tray_(NULL),
510 default_(NULL), 514 default_(NULL),
511 detailed_(NULL), 515 detailed_(NULL),
512 notification_(NULL), 516 notification_(NULL),
513 messages_(new tray::NetworkMessages()), 517 messages_(new tray::NetworkMessages()),
514 request_wifi_view_(false) { 518 request_wifi_view_(false) {
515 } 519 }
516 520
517 TrayNetwork::~TrayNetwork() { 521 TrayNetwork::~TrayNetwork() {
518 } 522 }
519 523
520 views::View* TrayNetwork::CreateTrayView(user::LoginStatus status) { 524 views::View* TrayNetwork::CreateTrayView(user::LoginStatus status) {
521 CHECK(tray_ == NULL); 525 CHECK(tray_ == NULL);
522 tray_ = new tray::NetworkTrayView(tray::LIGHT, true /*tray_icon*/); 526 tray_ = new tray::NetworkTrayView(this, tray::LIGHT, true /*tray_icon*/);
523 return tray_; 527 return tray_;
524 } 528 }
525 529
526 views::View* TrayNetwork::CreateDefaultView(user::LoginStatus status) { 530 views::View* TrayNetwork::CreateDefaultView(user::LoginStatus status) {
527 CHECK(default_ == NULL); 531 CHECK(default_ == NULL);
528 default_ = 532 default_ =
529 new tray::NetworkDefaultView(this, status != user::LOGGED_IN_LOCKED); 533 new tray::NetworkDefaultView(this, status != user::LOGGED_IN_LOCKED);
530 return default_; 534 return default_;
531 } 535 }
532 536
533 views::View* TrayNetwork::CreateDetailedView(user::LoginStatus status) { 537 views::View* TrayNetwork::CreateDetailedView(user::LoginStatus status) {
534 CHECK(detailed_ == NULL); 538 CHECK(detailed_ == NULL);
535 // Clear any notifications when showing the detailed view. 539 // Clear any notifications when showing the detailed view.
536 messages_->messages().clear(); 540 messages_->messages().clear();
537 HideNotificationView(); 541 HideNotificationView();
538 if (request_wifi_view_) { 542 if (request_wifi_view_) {
539 SystemTrayDelegate* delegate = Shell::GetInstance()->tray_delegate(); 543 SystemTrayDelegate* delegate = Shell::GetInstance()->tray_delegate();
540 // The Wi-Fi state is not toggled yet at this point. 544 // The Wi-Fi state is not toggled yet at this point.
541 detailed_ = new tray::NetworkWifiDetailedView(!delegate->GetWifiEnabled()); 545 detailed_ = new tray::NetworkWifiDetailedView(this,
546 !delegate->GetWifiEnabled());
542 request_wifi_view_ = false; 547 request_wifi_view_ = false;
543 } else { 548 } else {
544 detailed_ = new tray::NetworkListDetailedView( 549 detailed_ = new tray::NetworkListDetailedView(
545 status, IDS_ASH_STATUS_TRAY_NETWORK); 550 this, status, IDS_ASH_STATUS_TRAY_NETWORK);
546 detailed_->Init(); 551 detailed_->Init();
547 } 552 }
548 return detailed_; 553 return detailed_;
549 } 554 }
550 555
551 views::View* TrayNetwork::CreateNotificationView(user::LoginStatus status) { 556 views::View* TrayNetwork::CreateNotificationView(user::LoginStatus status) {
552 CHECK(notification_ == NULL); 557 CHECK(notification_ == NULL);
553 if (messages_->messages().empty()) 558 if (messages_->messages().empty())
554 return NULL; // Message has already been cleared. 559 return NULL; // Message has already been cleared.
555 notification_ = new tray::NetworkNotificationView(this); 560 notification_ = new tray::NetworkNotificationView(this);
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
623 628
624 void TrayNetwork::LinkClicked(MessageType message_type, int link_id) { 629 void TrayNetwork::LinkClicked(MessageType message_type, int link_id) {
625 tray::NetworkMessages::MessageMap::const_iterator iter = 630 tray::NetworkMessages::MessageMap::const_iterator iter =
626 messages()->messages().find(message_type); 631 messages()->messages().find(message_type);
627 if (iter != messages()->messages().end() && iter->second.delegate) 632 if (iter != messages()->messages().end() && iter->second.delegate)
628 iter->second.delegate->NotificationLinkClicked(link_id); 633 iter->second.delegate->NotificationLinkClicked(link_id);
629 } 634 }
630 635
631 } // namespace internal 636 } // namespace internal
632 } // namespace ash 637 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698