OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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.h" | 5 #include "chrome/browser/chromeos/status/network_menu.h" |
6 | 6 |
7 #include "app/l10n_util.h" | 7 #include "app/l10n_util.h" |
8 #include "app/resource_bundle.h" | 8 #include "app/resource_bundle.h" |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/stringprintf.h" | 10 #include "base/stringprintf.h" |
(...skipping 25 matching lines...) Expand all Loading... |
36 static const char* kNetworkStatusDisconnected = "disconnected"; | 36 static const char* kNetworkStatusDisconnected = "disconnected"; |
37 static const char* kNetworkStatusError = "error"; | 37 static const char* kNetworkStatusError = "error"; |
38 } | 38 } |
39 | 39 |
40 namespace chromeos { | 40 namespace chromeos { |
41 | 41 |
42 //////////////////////////////////////////////////////////////////////////////// | 42 //////////////////////////////////////////////////////////////////////////////// |
43 // NetworkMenu | 43 // NetworkMenu |
44 | 44 |
45 // static | 45 // static |
46 const int NetworkMenu::kNumWifiImages = 9; | 46 const int NetworkMenu::kNumWifiImages = 4; |
47 | 47 |
48 // NOTE: Use an array rather than just calculating a resource number to avoid | 48 // NOTE: Use an array rather than just calculating a resource number to avoid |
49 // creating implicit ordering dependencies on the resource values. | 49 // creating implicit ordering dependencies on the resource values. |
50 // static | 50 // static |
51 const int NetworkMenu::kBarsImages[kNumWifiImages] = { | 51 const int NetworkMenu::kBarsImages[kNumWifiImages] = { |
52 IDR_STATUSBAR_NETWORK_BARS1, | 52 IDR_STATUSBAR_NETWORK_BARS1, |
53 IDR_STATUSBAR_NETWORK_BARS2, | 53 IDR_STATUSBAR_NETWORK_BARS2, |
54 IDR_STATUSBAR_NETWORK_BARS3, | 54 IDR_STATUSBAR_NETWORK_BARS3, |
55 IDR_STATUSBAR_NETWORK_BARS4, | 55 IDR_STATUSBAR_NETWORK_BARS4, |
56 IDR_STATUSBAR_NETWORK_BARS5, | |
57 IDR_STATUSBAR_NETWORK_BARS6, | |
58 IDR_STATUSBAR_NETWORK_BARS7, | |
59 IDR_STATUSBAR_NETWORK_BARS8, | |
60 IDR_STATUSBAR_NETWORK_BARS9, | |
61 }; | 56 }; |
62 // static | 57 // static |
63 const int NetworkMenu::kBarsImagesBlack[kNumWifiImages] = { | 58 const int NetworkMenu::kBarsImagesBlack[kNumWifiImages] = { |
64 IDR_STATUSBAR_NETWORK_BARS1_BLACK, | 59 IDR_STATUSBAR_NETWORK_BARS1_BLACK, |
65 IDR_STATUSBAR_NETWORK_BARS2_BLACK, | 60 IDR_STATUSBAR_NETWORK_BARS2_BLACK, |
66 IDR_STATUSBAR_NETWORK_BARS3_BLACK, | 61 IDR_STATUSBAR_NETWORK_BARS3_BLACK, |
67 IDR_STATUSBAR_NETWORK_BARS4_BLACK, | 62 IDR_STATUSBAR_NETWORK_BARS4_BLACK, |
68 IDR_STATUSBAR_NETWORK_BARS5_BLACK, | |
69 IDR_STATUSBAR_NETWORK_BARS6_BLACK, | |
70 IDR_STATUSBAR_NETWORK_BARS7_BLACK, | |
71 IDR_STATUSBAR_NETWORK_BARS8_BLACK, | |
72 IDR_STATUSBAR_NETWORK_BARS9_BLACK, | |
73 }; | 63 }; |
74 // static | 64 // static |
75 const int NetworkMenu::kBarsImagesLowData[kNumWifiImages] = { | 65 const int NetworkMenu::kBarsImagesLowData[kNumWifiImages] = { |
76 IDR_STATUSBAR_NETWORK_BARS1_LOWDATA, | 66 IDR_STATUSBAR_NETWORK_BARS1_ORANGE, |
77 IDR_STATUSBAR_NETWORK_BARS2_LOWDATA, | 67 IDR_STATUSBAR_NETWORK_BARS2_ORANGE, |
78 IDR_STATUSBAR_NETWORK_BARS3_LOWDATA, | 68 IDR_STATUSBAR_NETWORK_BARS3_ORANGE, |
79 IDR_STATUSBAR_NETWORK_BARS4_LOWDATA, | 69 IDR_STATUSBAR_NETWORK_BARS4_ORANGE, |
80 IDR_STATUSBAR_NETWORK_BARS5_LOWDATA, | |
81 IDR_STATUSBAR_NETWORK_BARS6_LOWDATA, | |
82 IDR_STATUSBAR_NETWORK_BARS7_LOWDATA, | |
83 IDR_STATUSBAR_NETWORK_BARS8_LOWDATA, | |
84 IDR_STATUSBAR_NETWORK_BARS9_LOWDATA, | |
85 }; | 70 }; |
86 // static | 71 // static |
87 const int NetworkMenu::kBarsImagesVLowData[kNumWifiImages] = { | 72 const int NetworkMenu::kBarsImagesVLowData[kNumWifiImages] = { |
88 IDR_STATUSBAR_NETWORK_BARS1_VLOWDATA, | 73 IDR_STATUSBAR_NETWORK_BARS1_RED, |
89 IDR_STATUSBAR_NETWORK_BARS2_VLOWDATA, | 74 IDR_STATUSBAR_NETWORK_BARS2_RED, |
90 IDR_STATUSBAR_NETWORK_BARS3_VLOWDATA, | 75 IDR_STATUSBAR_NETWORK_BARS3_RED, |
91 IDR_STATUSBAR_NETWORK_BARS4_VLOWDATA, | 76 IDR_STATUSBAR_NETWORK_BARS4_RED, |
92 IDR_STATUSBAR_NETWORK_BARS5_VLOWDATA, | |
93 IDR_STATUSBAR_NETWORK_BARS6_VLOWDATA, | |
94 IDR_STATUSBAR_NETWORK_BARS7_VLOWDATA, | |
95 IDR_STATUSBAR_NETWORK_BARS8_VLOWDATA, | |
96 IDR_STATUSBAR_NETWORK_BARS9_VLOWDATA, | |
97 }; | 77 }; |
98 | 78 |
99 NetworkMenu::NetworkMenu() | 79 NetworkMenu::NetworkMenu() |
100 : min_width_(-1) { | 80 : min_width_(-1) { |
101 network_menu_.reset(NetworkMenuUI::CreateMenu2(this)); | 81 network_menu_.reset(NetworkMenuUI::CreateMenu2(this)); |
102 } | 82 } |
103 | 83 |
104 NetworkMenu::~NetworkMenu() { | 84 NetworkMenu::~NetworkMenu() { |
105 } | 85 } |
106 | 86 |
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
394 break; | 374 break; |
395 case CellularNetwork::DATA_NORMAL: | 375 case CellularNetwork::DATA_NORMAL: |
396 images = kBarsImages; | 376 images = kBarsImages; |
397 break; | 377 break; |
398 } | 378 } |
399 return *ResourceBundle::GetSharedInstance().GetBitmapNamed(images[index]); | 379 return *ResourceBundle::GetSharedInstance().GetBitmapNamed(images[index]); |
400 } | 380 } |
401 | 381 |
402 // static | 382 // static |
403 SkBitmap NetworkMenu::IconForDisplay(SkBitmap icon, SkBitmap badge) { | 383 SkBitmap NetworkMenu::IconForDisplay(SkBitmap icon, SkBitmap badge) { |
404 // Icons are 24x24. | |
405 static const int kIconWidth = 24; | |
406 static const int kIconHeight = 24; | |
407 // Draw the network icon 3 pixels down to center it. | |
408 static const int kIconX = 0; | |
409 static const int kIconY = 3; | |
410 // Draw badge at (14,14). | 384 // Draw badge at (14,14). |
411 static const int kBadgeX = 14; | 385 static const int kBadgeX = 14; |
412 static const int kBadgeY = 14; | 386 static const int kBadgeY = 14; |
413 | 387 |
414 gfx::CanvasSkia canvas(kIconWidth, kIconHeight, false); | 388 gfx::CanvasSkia canvas(icon.width(), icon.height(), false); |
415 canvas.DrawBitmapInt(icon, kIconX, kIconY); | 389 canvas.DrawBitmapInt(icon, 0, 0); |
416 if (!badge.empty()) | 390 if (!badge.empty()) |
417 canvas.DrawBitmapInt(badge, kBadgeX, kBadgeY); | 391 canvas.DrawBitmapInt(badge, kBadgeX, kBadgeY); |
418 return canvas.ExtractBitmap(); | 392 return canvas.ExtractBitmap(); |
419 } | 393 } |
420 | 394 |
421 //////////////////////////////////////////////////////////////////////////////// | 395 //////////////////////////////////////////////////////////////////////////////// |
422 // NetworkMenu, views::ViewMenuDelegate implementation: | 396 // NetworkMenu, views::ViewMenuDelegate implementation: |
423 | 397 |
424 void NetworkMenu::RunMenu(views::View* source, const gfx::Point& pt) { | 398 void NetworkMenu::RunMenu(views::View* source, const gfx::Point& pt) { |
425 refreshing_menu_ = true; | 399 refreshing_menu_ = true; |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
497 if (wifi_networks.empty() && cell_networks.empty()) { | 471 if (wifi_networks.empty() && cell_networks.empty()) { |
498 label = l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_MENU_ITEM_INDENT, | 472 label = l10n_util::GetStringFUTF16(IDS_STATUSBAR_NETWORK_MENU_ITEM_INDENT, |
499 l10n_util::GetStringUTF16(IDS_STATUSBAR_NO_NETWORKS_MESSAGE)); | 473 l10n_util::GetStringUTF16(IDS_STATUSBAR_NO_NETWORKS_MESSAGE)); |
500 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, | 474 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, |
501 SkBitmap(), std::string(), FLAG_DISABLED)); | 475 SkBitmap(), std::string(), FLAG_DISABLED)); |
502 } | 476 } |
503 | 477 |
504 // Other networks | 478 // Other networks |
505 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, | 479 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, |
506 l10n_util::GetStringUTF16(IDS_OPTIONS_SETTINGS_OTHER_NETWORKS), | 480 l10n_util::GetStringUTF16(IDS_OPTIONS_SETTINGS_OTHER_NETWORKS), |
507 IconForDisplay(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_BARS0), | 481 IconForDisplay(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_BARS0_BLACK), |
508 SkBitmap()), | 482 SkBitmap()), |
509 std::string(), FLAG_OTHER_NETWORK)); | 483 std::string(), FLAG_OTHER_NETWORK)); |
510 | 484 |
511 bool wifi_available = cros->wifi_available(); | 485 bool wifi_available = cros->wifi_available(); |
512 bool cellular_available = cros->cellular_available(); | 486 bool cellular_available = cros->cellular_available(); |
513 if (wifi_available || cellular_available) { | 487 if (wifi_available || cellular_available) { |
514 // Separator. | 488 // Separator. |
515 menu_items_.push_back(MenuItem()); | 489 menu_items_.push_back(MenuItem()); |
516 | 490 |
517 // Turn Wifi Off. (only if wifi available) | 491 // Turn Wifi Off. (only if wifi available) |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
618 chromeos::TYPE_WIFI); | 592 chromeos::TYPE_WIFI); |
619 browser->ShowOptionsTab(page); | 593 browser->ShowOptionsTab(page); |
620 } | 594 } |
621 } else { | 595 } else { |
622 const bool kFocusLogin = true; | 596 const bool kFocusLogin = true; |
623 ShowNetworkConfigView(new NetworkConfigView(), kFocusLogin); | 597 ShowNetworkConfigView(new NetworkConfigView(), kFocusLogin); |
624 } | 598 } |
625 } | 599 } |
626 | 600 |
627 } // namespace chromeos | 601 } // namespace chromeos |
OLD | NEW |