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

Side by Side Diff: chrome/browser/chromeos/status/network_menu_icon.cc

Issue 7633046: Fix VPN icon issues (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix mock expectations. Created 9 years, 4 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 | Annotate | Revision Log
« no previous file with comments | « chrome/browser/chromeos/status/network_menu.cc ('k') | no next file » | 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "chrome/browser/chromeos/status/network_menu_icon.h" 5 #include "chrome/browser/chromeos/status/network_menu_icon.h"
6 6
7 #include <math.h> 7 #include <math.h>
8 8
9 #include "base/utf_string_conversions.h" 9 #include "base/utf_string_conversions.h"
10 #include "chrome/browser/chromeos/cros/cros_library.h" 10 #include "chrome/browser/chromeos/cros/cros_library.h"
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after
333 // VPN should never be the primiary active network. This is used for 333 // VPN should never be the primiary active network. This is used for
334 // the icon next to a connected or disconnected VPN. 334 // the icon next to a connected or disconnected VPN.
335 const Network* connected_network = cros->connected_network(); 335 const Network* connected_network = cros->connected_network();
336 if (connected_network && connected_network->type() != TYPE_VPN) { 336 if (connected_network && connected_network->type() != TYPE_VPN) {
337 // Set the icon and badges for the connected network. 337 // Set the icon and badges for the connected network.
338 SetIcon(connected_network); 338 SetIcon(connected_network);
339 SetBadges(connected_network); 339 SetBadges(connected_network);
340 } else { 340 } else {
341 // Use the ethernet icon for VPN when not connected. 341 // Use the ethernet icon for VPN when not connected.
342 icon_ = rb.GetBitmapNamed(IDR_STATUSBAR_WIRED); 342 icon_ = rb.GetBitmapNamed(IDR_STATUSBAR_WIRED);
343 // We can be connected to a VPN, even when there is no connected
344 // underlying network. In that case, for the status bar, show the
345 // disconencted badge.
346 if (is_status_bar_) {
347 bottom_right_badge_ =
348 rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_DISCONNECTED);
349 }
343 } 350 }
344 // Overlay the VPN badge. 351 // Overlay the VPN badge.
345 bottom_left_badge_ = rb.GetBitmapNamed(kVpnBadgeId); 352 bottom_left_badge_ = rb.GetBitmapNamed(kVpnBadgeId);
346 } else { 353 } else {
347 SetIcon(network); 354 SetIcon(network);
348 SetBadges(network); 355 SetBadges(network);
349 } 356 }
350 } 357 }
351 358
352 // Generates the bitmap. Call after setting the icon and badges. 359 // Generates the bitmap. Call after setting the icon and badges.
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
559 } 566 }
560 567
561 // If we are not connecting to a network, show the active network. 568 // If we are not connecting to a network, show the active network.
562 const Network* network = cros->active_network(); 569 const Network* network = cros->active_network();
563 if (network) { 570 if (network) {
564 bool animating = false; 571 bool animating = false;
565 last_network_type_ = network->type(); 572 last_network_type_ = network->type();
566 // Icon + badges. 573 // Icon + badges.
567 icon_->SetDirty(); 574 icon_->SetDirty();
568 icon_->UpdateIcon(network); 575 icon_->UpdateIcon(network);
569 // Overlay the VPN badge if connected or connecting to a VPN. 576 // Overlay the VPN badge if connecting to a VPN.
570 if (cros->virtual_network()) { 577 if (network->type() != TYPE_VPN && cros->virtual_network()) {
571 const SkBitmap* vpn_badge = rb.GetBitmapNamed(kVpnBadgeId); 578 const SkBitmap* vpn_badge = rb.GetBitmapNamed(kVpnBadgeId);
572 if (cros->virtual_network()->connecting()) { 579 if (cros->virtual_network()->connecting()) {
573 double animation = GetAnimation(); 580 double animation = GetAnimation();
574 animating = true; 581 animating = true;
575 // Even though this is the only place we use vpn_connecting_badge_, 582 // Even though this is the only place we use vpn_connecting_badge_,
576 // it is important that this is a member variable since we set a 583 // it is important that this is a member variable since we set a
577 // pointer to it and access that pointer in icon_->GenerateBitmap(). 584 // pointer to it and access that pointer in icon_->GenerateBitmap().
578 vpn_connecting_badge_ = SkBitmapOperations::CreateBlendedBitmap( 585 vpn_connecting_badge_ = SkBitmapOperations::CreateBlendedBitmap(
579 empty_vpn_badge_, *vpn_badge, animation); 586 empty_vpn_badge_, *vpn_badge, animation);
580 icon_->set_bottom_left_badge(&vpn_connecting_badge_); 587 icon_->set_bottom_left_badge(&vpn_connecting_badge_);
581 } else if (cros->virtual_network()->connected()) {
582 icon_->set_bottom_left_badge(vpn_badge);
583 } 588 }
584 } 589 }
585 if (!animating) 590 if (!animating)
586 animation_connecting_.Stop(); 591 animation_connecting_.Stop();
587 // Text. 592 // Text.
588 if (text) { 593 if (text) {
589 switch (network->type()) { 594 switch (network->type()) {
590 case TYPE_ETHERNET: 595 case TYPE_ETHERNET:
591 if (mode_ == MENU_MODE) { 596 if (mode_ == MENU_MODE) {
592 *text = l10n_util::GetStringFUTF16( 597 *text = l10n_util::GetStringFUTF16(
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
678 ethernet_icon->width(), ethernet_icon->height(), false); 683 ethernet_icon->width(), ethernet_icon->height(), false);
679 canvas.DrawBitmapInt(*ethernet_icon, 0, 0); 684 canvas.DrawBitmapInt(*ethernet_icon, 0, 0);
680 const SkBitmap* vpn_badge = rb.GetBitmapNamed(kVpnBadgeId); 685 const SkBitmap* vpn_badge = rb.GetBitmapNamed(kVpnBadgeId);
681 canvas.DrawBitmapInt(*vpn_badge, kBadgeLeftX, kBadgeBottomY); 686 canvas.DrawBitmapInt(*vpn_badge, kBadgeLeftX, kBadgeBottomY);
682 vpn_bitmap = new SkBitmap(canvas.ExtractBitmap()); 687 vpn_bitmap = new SkBitmap(canvas.ExtractBitmap());
683 } 688 }
684 return vpn_bitmap; 689 return vpn_bitmap;
685 } 690 }
686 691
687 } // chromeos 692 } // chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/status/network_menu.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698