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 | |
99 NetworkMenu::NetworkMenu() | 48 NetworkMenu::NetworkMenu() |
100 : min_width_(-1) { | 49 : min_width_(-1) { |
101 network_menu_.reset(NetworkMenuUI::CreateMenu2(this)); | 50 network_menu_.reset(NetworkMenuUI::CreateMenu2(this)); |
102 } | 51 } |
103 | 52 |
104 NetworkMenu::~NetworkMenu() { | 53 NetworkMenu::~NetworkMenu() { |
105 } | 54 } |
106 | 55 |
107 bool NetworkMenu::GetNetworkAt(int index, NetworkInfo* info) const { | 56 bool NetworkMenu::GetNetworkAt(int index, NetworkInfo* info) const { |
108 DCHECK(info); | 57 DCHECK(info); |
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
364 void NetworkMenu::UpdateMenu() { | 313 void NetworkMenu::UpdateMenu() { |
365 refreshing_menu_ = true; | 314 refreshing_menu_ = true; |
366 InitMenuItems(); | 315 InitMenuItems(); |
367 network_menu_->Rebuild(); | 316 network_menu_->Rebuild(); |
368 refreshing_menu_ = false; | 317 refreshing_menu_ = false; |
369 } | 318 } |
370 | 319 |
371 // static | 320 // static |
372 SkBitmap NetworkMenu::IconForNetworkStrength(int strength, bool black) { | 321 SkBitmap NetworkMenu::IconForNetworkStrength(int strength, bool black) { |
373 // Compose wifi icon by superimposing various icons. | 322 // 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 |
374 int index = static_cast<int>(strength / 100.0 * | 348 int index = static_cast<int>(strength / 100.0 * |
375 nextafter(static_cast<float>(kNumWifiImages), 0)); | 349 nextafter(static_cast<float>(kNumWifiImages), 0)); |
376 index = std::max(std::min(index, kNumWifiImages - 1), 0); | 350 index = std::max(std::min(index, kNumWifiImages - 1), 0); |
377 const int* images = black ? kBarsImagesBlack : kBarsImages; | 351 return *ResourceBundle::GetSharedInstance().GetBitmapNamed( |
378 return *ResourceBundle::GetSharedInstance().GetBitmapNamed(images[index]); | 352 black ? kBarsBlackImages[index] : kBarsImages[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]); | |
400 } | 353 } |
401 | 354 |
402 // static | 355 // static |
403 SkBitmap NetworkMenu::IconForDisplay(SkBitmap icon, SkBitmap badge) { | 356 SkBitmap NetworkMenu::IconForDisplay(SkBitmap icon, SkBitmap badge) { |
404 // Icons are 24x24. | 357 // Icons are 24x24. |
405 static const int kIconWidth = 24; | 358 static const int kIconWidth = 24; |
406 static const int kIconHeight = 24; | 359 static const int kIconHeight = 24; |
407 // Draw the network icon 3 pixels down to center it. | 360 // Draw the network icon 3 pixels down to center it. |
408 static const int kIconX = 0; | 361 static const int kIconX = 0; |
409 static const int kIconY = 3; | 362 static const int kIconY = 3; |
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
618 chromeos::TYPE_WIFI); | 571 chromeos::TYPE_WIFI); |
619 browser->ShowOptionsTab(page); | 572 browser->ShowOptionsTab(page); |
620 } | 573 } |
621 } else { | 574 } else { |
622 const bool kFocusLogin = true; | 575 const bool kFocusLogin = true; |
623 ShowNetworkConfigView(new NetworkConfigView(), kFocusLogin); | 576 ShowNetworkConfigView(new NetworkConfigView(), kFocusLogin); |
624 } | 577 } |
625 } | 578 } |
626 | 579 |
627 } // namespace chromeos | 580 } // namespace chromeos |
OLD | NEW |