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 27 matching lines...) Expand all Loading... |
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 = 9; |
47 | 47 |
| 48 // NOTE: Use an array rather than just calculating a resource number to avoid |
| 49 // creating implicit ordering dependencies on the resource values. |
| 50 // static |
| 51 const int NetworkMenu::kBarsImages[kNumWifiImages] = { |
| 52 IDR_STATUSBAR_NETWORK_BARS1, |
| 53 IDR_STATUSBAR_NETWORK_BARS2, |
| 54 IDR_STATUSBAR_NETWORK_BARS3, |
| 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 }; |
| 62 // static |
| 63 const int NetworkMenu::kBarsImagesBlack[kNumWifiImages] = { |
| 64 IDR_STATUSBAR_NETWORK_BARS1_BLACK, |
| 65 IDR_STATUSBAR_NETWORK_BARS2_BLACK, |
| 66 IDR_STATUSBAR_NETWORK_BARS3_BLACK, |
| 67 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 }; |
| 74 // static |
| 75 const int NetworkMenu::kBarsImagesLowData[kNumWifiImages] = { |
| 76 IDR_STATUSBAR_NETWORK_BARS1_LOWDATA, |
| 77 IDR_STATUSBAR_NETWORK_BARS2_LOWDATA, |
| 78 IDR_STATUSBAR_NETWORK_BARS3_LOWDATA, |
| 79 IDR_STATUSBAR_NETWORK_BARS4_LOWDATA, |
| 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 }; |
| 86 // static |
| 87 const int NetworkMenu::kBarsImagesVLowData[kNumWifiImages] = { |
| 88 IDR_STATUSBAR_NETWORK_BARS1_VLOWDATA, |
| 89 IDR_STATUSBAR_NETWORK_BARS2_VLOWDATA, |
| 90 IDR_STATUSBAR_NETWORK_BARS3_VLOWDATA, |
| 91 IDR_STATUSBAR_NETWORK_BARS4_VLOWDATA, |
| 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 }; |
| 98 |
48 NetworkMenu::NetworkMenu() | 99 NetworkMenu::NetworkMenu() |
49 : min_width_(-1) { | 100 : min_width_(-1) { |
50 network_menu_.reset(NetworkMenuUI::CreateMenu2(this)); | 101 network_menu_.reset(NetworkMenuUI::CreateMenu2(this)); |
51 } | 102 } |
52 | 103 |
53 NetworkMenu::~NetworkMenu() { | 104 NetworkMenu::~NetworkMenu() { |
54 } | 105 } |
55 | 106 |
56 bool NetworkMenu::GetNetworkAt(int index, NetworkInfo* info) const { | 107 bool NetworkMenu::GetNetworkAt(int index, NetworkInfo* info) const { |
57 DCHECK(info); | 108 DCHECK(info); |
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
313 void NetworkMenu::UpdateMenu() { | 364 void NetworkMenu::UpdateMenu() { |
314 refreshing_menu_ = true; | 365 refreshing_menu_ = true; |
315 InitMenuItems(); | 366 InitMenuItems(); |
316 network_menu_->Rebuild(); | 367 network_menu_->Rebuild(); |
317 refreshing_menu_ = false; | 368 refreshing_menu_ = false; |
318 } | 369 } |
319 | 370 |
320 // static | 371 // static |
321 SkBitmap NetworkMenu::IconForNetworkStrength(int strength, bool black) { | 372 SkBitmap NetworkMenu::IconForNetworkStrength(int strength, bool black) { |
322 // Compose wifi icon by superimposing various icons. | 373 // Compose wifi icon by superimposing various icons. |
323 // NOTE: Use an array rather than just calculating a resource number to avoid | |
324 // creating implicit ordering dependencies on the resource values. | |
325 static const int kBarsImages[kNumWifiImages] = { | |
326 IDR_STATUSBAR_NETWORK_BARS1, | |
327 IDR_STATUSBAR_NETWORK_BARS2, | |
328 IDR_STATUSBAR_NETWORK_BARS3, | |
329 IDR_STATUSBAR_NETWORK_BARS4, | |
330 IDR_STATUSBAR_NETWORK_BARS5, | |
331 IDR_STATUSBAR_NETWORK_BARS6, | |
332 IDR_STATUSBAR_NETWORK_BARS7, | |
333 IDR_STATUSBAR_NETWORK_BARS8, | |
334 IDR_STATUSBAR_NETWORK_BARS9, | |
335 }; | |
336 static const int kBarsBlackImages[kNumWifiImages] = { | |
337 IDR_STATUSBAR_NETWORK_BARS1_BLACK, | |
338 IDR_STATUSBAR_NETWORK_BARS2_BLACK, | |
339 IDR_STATUSBAR_NETWORK_BARS3_BLACK, | |
340 IDR_STATUSBAR_NETWORK_BARS4_BLACK, | |
341 IDR_STATUSBAR_NETWORK_BARS5_BLACK, | |
342 IDR_STATUSBAR_NETWORK_BARS6_BLACK, | |
343 IDR_STATUSBAR_NETWORK_BARS7_BLACK, | |
344 IDR_STATUSBAR_NETWORK_BARS8_BLACK, | |
345 IDR_STATUSBAR_NETWORK_BARS9_BLACK, | |
346 }; | |
347 | |
348 int index = static_cast<int>(strength / 100.0 * | 374 int index = static_cast<int>(strength / 100.0 * |
349 nextafter(static_cast<float>(kNumWifiImages), 0)); | 375 nextafter(static_cast<float>(kNumWifiImages), 0)); |
350 index = std::max(std::min(index, kNumWifiImages - 1), 0); | 376 index = std::max(std::min(index, kNumWifiImages - 1), 0); |
351 return *ResourceBundle::GetSharedInstance().GetBitmapNamed( | 377 const int* images = black ? kBarsImagesBlack : kBarsImages; |
352 black ? kBarsBlackImages[index] : kBarsImages[index]); | 378 return *ResourceBundle::GetSharedInstance().GetBitmapNamed(images[index]); |
| 379 } |
| 380 |
| 381 SkBitmap NetworkMenu::IconForNetworkStrength(CellularNetwork cellular) { |
| 382 // Compose wifi icon by superimposing various icons. |
| 383 int index = static_cast<int>(cellular.strength() / 100.0 * |
| 384 nextafter(static_cast<float>(kNumWifiImages), 0)); |
| 385 index = std::max(std::min(index, kNumWifiImages - 1), 0); |
| 386 const int* images; |
| 387 switch (cellular.data_left()) { |
| 388 case CellularNetwork::DATA_NONE: |
| 389 case CellularNetwork::DATA_VERY_LOW: |
| 390 images = kBarsImagesVLowData; |
| 391 break; |
| 392 case CellularNetwork::DATA_LOW: |
| 393 images = kBarsImagesLowData; |
| 394 break; |
| 395 case CellularNetwork::DATA_NORMAL: |
| 396 images = kBarsImages; |
| 397 break; |
| 398 } |
| 399 return *ResourceBundle::GetSharedInstance().GetBitmapNamed(images[index]); |
353 } | 400 } |
354 | 401 |
355 // static | 402 // static |
356 SkBitmap NetworkMenu::IconForDisplay(SkBitmap icon, SkBitmap badge) { | 403 SkBitmap NetworkMenu::IconForDisplay(SkBitmap icon, SkBitmap badge) { |
357 // Icons are 24x24. | 404 // Icons are 24x24. |
358 static const int kIconWidth = 24; | 405 static const int kIconWidth = 24; |
359 static const int kIconHeight = 24; | 406 static const int kIconHeight = 24; |
360 // Draw the network icon 3 pixels down to center it. | 407 // Draw the network icon 3 pixels down to center it. |
361 static const int kIconX = 0; | 408 static const int kIconX = 0; |
362 static const int kIconY = 3; | 409 static const int kIconY = 3; |
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
571 chromeos::TYPE_WIFI); | 618 chromeos::TYPE_WIFI); |
572 browser->ShowOptionsTab(page); | 619 browser->ShowOptionsTab(page); |
573 } | 620 } |
574 } else { | 621 } else { |
575 const bool kFocusLogin = true; | 622 const bool kFocusLogin = true; |
576 ShowNetworkConfigView(new NetworkConfigView(), kFocusLogin); | 623 ShowNetworkConfigView(new NetworkConfigView(), kFocusLogin); |
577 } | 624 } |
578 } | 625 } |
579 | 626 |
580 } // namespace chromeos | 627 } // namespace chromeos |
OLD | NEW |