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

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

Issue 3084027: Clean up code by removing network traffic code in network library.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 10 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_button.h ('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) 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_button.h" 5 #include "chrome/browser/chromeos/status/network_menu_button.h"
6 6
7 #include <limits> 7 #include <limits>
8 8
9 #include "app/l10n_util.h" 9 #include "app/l10n_util.h"
10 #include "app/resource_bundle.h" 10 #include "app/resource_bundle.h"
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 canvas->DrawBitmapInt(IconForDisplay( 215 canvas->DrawBitmapInt(IconForDisplay(
216 *ResourceBundle::GetSharedInstance(). 216 *ResourceBundle::GetSharedInstance().
217 GetBitmapNamed(IDR_STATUSBAR_NETWORK_BARS_PRESSED), SkBitmap()), 217 GetBitmapNamed(IDR_STATUSBAR_NETWORK_BARS_PRESSED), SkBitmap()),
218 0, 0); 218 0, 0);
219 } 219 }
220 220
221 void NetworkMenuButton::DrawIcon(gfx::Canvas* canvas) { 221 void NetworkMenuButton::DrawIcon(gfx::Canvas* canvas) {
222 canvas->DrawBitmapInt(IconForDisplay(icon(), badge()), 0, 0); 222 canvas->DrawBitmapInt(IconForDisplay(icon(), badge()), 0, 0);
223 } 223 }
224 224
225 // Override the DrawIcon method to draw the wifi icon.
226 // The wifi icon is composed of 1 or more alpha-blended icons to show the
227 // network strength. We also draw an animation for when there's upload/download
228 // traffic.
229 /* TODO(chocobo): Add this code back in when UI is finalized.
230 void NetworkMenuButton::DrawIcon(gfx::Canvas* canvas) {
231
232 // First draw the base icon.
233 canvas->DrawBitmapInt(icon(), 0, 0);
234
235 // If wifi, we draw the wifi signal bars.
236 NetworkLibrary* cros = CrosLibrary::Get()->GetNetworkLibrary();
237 if (cros->wifi_connecting() ||
238 (!cros->ethernet_connected() && cros->wifi_connected())) {
239 ResourceBundle& rb = ResourceBundle::GetSharedInstance();
240 // We want a value between 0-1.
241 // 0 reperesents no signal and 1 represents full signal strength.
242 double value = cros->wifi_connecting() ?
243 animation_connecting_.GetCurrentValue() :
244 cros->wifi_strength() / 100.0;
245 if (value < 0)
246 value = 0;
247 else if (value > 1)
248 value = 1;
249
250 // If we are animating network traffic and not connecting, then we need to
251 // figure out if we are to also draw the extra image.
252 int downloading_index = -1;
253 int uploading_index = -1;
254 if (!animation_connecting_.is_animating()) {
255 // For network animation, we only show animation in one direction.
256 // So when we are hiding, we just use 1 minus the value.
257 // We have kNumWifiImages + 1 number of states. For the first state, where
258 // we are not adding any images, we set the index to -1.
259 if (animation_downloading_.is_animating()) {
260 double value_downloading = animation_downloading_.IsShowing() ?
261 animation_downloading_.GetCurrentValue() :
262 1.0 - animation_downloading_.GetCurrentValue();
263 downloading_index = static_cast<int>(value_downloading *
264 nextafter(static_cast<float>(kNumWifiImages + 1), 0)) - 1;
265 }
266 if (animation_uploading_.is_animating()) {
267 double value_uploading = animation_uploading_.IsShowing() ?
268 animation_uploading_.GetCurrentValue() :
269 1.0 - animation_uploading_.GetCurrentValue();
270 uploading_index = static_cast<int>(value_uploading *
271 nextafter(static_cast<float>(kNumWifiImages + 1), 0)) - 1;
272 }
273 }
274
275 // We need to determine opacity for each of the kNumWifiImages images.
276 // We split the range (0-1) into equal ranges per kNumWifiImages images.
277 // For example if kNumWifiImages is 3, then [0-0.33) is the first image and
278 // [0.33-0.66) is the second image and [0.66-1] is the last image.
279 // For each of the image:
280 // If value < the range of this image, draw at kMinOpacity opacity.
281 // If value > the range of this image, draw at kMaxOpacity-1 opacity.
282 // If value within the range of this image, draw at an opacity value
283 // between kMinOpacity and kMaxOpacity-1 relative to where in the range
284 // value is at.
285 // NOTE: Use an array rather than just calculating a resource number to
286 // avoid creating implicit ordering dependencies on the resource values.
287 static const int kWifiUpImages[kNumWifiImages] = {
288 IDR_STATUSBAR_WIFI_UP1,
289 IDR_STATUSBAR_WIFI_UP2,
290 IDR_STATUSBAR_WIFI_UP3,
291 IDR_STATUSBAR_WIFI_UP4,
292 IDR_STATUSBAR_WIFI_UP5,
293 IDR_STATUSBAR_WIFI_UP6,
294 IDR_STATUSBAR_WIFI_UP7,
295 IDR_STATUSBAR_WIFI_UP8,
296 IDR_STATUSBAR_WIFI_UP9,
297 };
298 static const int kWifiUpPImages[kNumWifiImages] = {
299 IDR_STATUSBAR_WIFI_UP1P,
300 IDR_STATUSBAR_WIFI_UP2P,
301 IDR_STATUSBAR_WIFI_UP3P,
302 IDR_STATUSBAR_WIFI_UP4P,
303 IDR_STATUSBAR_WIFI_UP5P,
304 IDR_STATUSBAR_WIFI_UP6P,
305 IDR_STATUSBAR_WIFI_UP7P,
306 IDR_STATUSBAR_WIFI_UP8P,
307 IDR_STATUSBAR_WIFI_UP9P,
308 };
309 static const int kWifiDownImages[kNumWifiImages] = {
310 IDR_STATUSBAR_WIFI_DOWN1,
311 IDR_STATUSBAR_WIFI_DOWN2,
312 IDR_STATUSBAR_WIFI_DOWN3,
313 IDR_STATUSBAR_WIFI_DOWN4,
314 IDR_STATUSBAR_WIFI_DOWN5,
315 IDR_STATUSBAR_WIFI_DOWN6,
316 IDR_STATUSBAR_WIFI_DOWN7,
317 IDR_STATUSBAR_WIFI_DOWN8,
318 IDR_STATUSBAR_WIFI_DOWN9,
319 };
320 static const int kWifiDownPImages[kNumWifiImages] = {
321 IDR_STATUSBAR_WIFI_DOWN1P,
322 IDR_STATUSBAR_WIFI_DOWN2P,
323 IDR_STATUSBAR_WIFI_DOWN3P,
324 IDR_STATUSBAR_WIFI_DOWN4P,
325 IDR_STATUSBAR_WIFI_DOWN5P,
326 IDR_STATUSBAR_WIFI_DOWN6P,
327 IDR_STATUSBAR_WIFI_DOWN7P,
328 IDR_STATUSBAR_WIFI_DOWN8P,
329 IDR_STATUSBAR_WIFI_DOWN9P,
330 };
331
332 double value_per_image = 1.0 / kNumWifiImages;
333 SkPaint paint;
334 for (int i = 0; i < kNumWifiImages; i++) {
335 if (value > value_per_image) {
336 paint.setAlpha(kMaxOpacity - 1);
337 value -= value_per_image;
338 } else {
339 // Map value between 0 and value_per_image to [kMinOpacity,kMaxOpacity).
340 paint.setAlpha(kMinOpacity + static_cast<int>(value / value_per_image *
341 nextafter(static_cast<float>(kMaxOpacity - kMinOpacity), 0)));
342 // For following iterations, we want to draw at kMinOpacity.
343 // So we set value to 0 here.
344 value = 0;
345 }
346 canvas->DrawBitmapInt(*rb.GetBitmapNamed(kWifiUpImages[i]), 0, 0, paint);
347 canvas->DrawBitmapInt(*rb.GetBitmapNamed(kWifiDownImages[i]), 0, 0,
348 paint);
349
350 // Draw network traffic downloading/uploading image if necessary.
351 if (i == downloading_index) {
352 canvas->DrawBitmapInt(*rb.GetBitmapNamed(kWifiDownPImages[i]), 0, 0,
353 paint);
354 }
355 if (i == uploading_index) {
356 canvas->DrawBitmapInt(*rb.GetBitmapNamed(kWifiUpPImages[i]), 0, 0,
357 paint);
358 }
359 }
360 }
361 }
362 */
363 //////////////////////////////////////////////////////////////////////////////// 225 ////////////////////////////////////////////////////////////////////////////////
364 // NetworkMenuButton, NetworkLibrary::Observer implementation: 226 // NetworkMenuButton, NetworkLibrary::Observer implementation:
365 227
366 void NetworkMenuButton::NetworkChanged(NetworkLibrary* cros) { 228 void NetworkMenuButton::NetworkChanged(NetworkLibrary* cros) {
367 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); 229 ResourceBundle& rb = ResourceBundle::GetSharedInstance();
368 if (CrosLibrary::Get()->EnsureLoaded()) { 230 if (CrosLibrary::Get()->EnsureLoaded()) {
369 if (cros->wifi_connecting() || cros->cellular_connecting()) { 231 if (cros->wifi_connecting() || cros->cellular_connecting()) {
370 // Start the connecting animation if not running. 232 // Start the connecting animation if not running.
371 if (!animation_connecting_.is_animating()) { 233 if (!animation_connecting_.is_animating()) {
372 animation_connecting_.Reset(); 234 animation_connecting_.Reset();
(...skipping 26 matching lines...) Expand all
399 SetBadge(SkBitmap()); 261 SetBadge(SkBitmap());
400 } 262 }
401 } else { 263 } else {
402 SetIcon(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_BARS0)); 264 SetIcon(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_BARS0));
403 SetBadge(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_WARNING)); 265 SetBadge(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_WARNING));
404 } 266 }
405 267
406 SchedulePaint(); 268 SchedulePaint();
407 } 269 }
408 270
409 void NetworkMenuButton::NetworkTraffic(NetworkLibrary* cros, int traffic_type) {
410 /* TODO(chocobo): Add this code back in when network traffic UI is finalized.
411 if (!cros->ethernet_connected() && cros->wifi_connected() &&
412 !cros->wifi_connecting()) {
413 // For downloading/uploading animation, we want to force at least one cycle
414 // so that it looks smooth. And if we keep downloading/uploading, we will
415 // keep calling StartThrobbing which will update the cycle count back to 2.
416 if (traffic_type & TRAFFIC_DOWNLOAD)
417 animation_downloading_.StartThrobbing(2);
418 if (traffic_type & TRAFFIC_UPLOAD)
419 animation_uploading_.StartThrobbing(2);
420 }
421 */
422 }
423
424 void NetworkMenuButton::SetBadge(const SkBitmap& badge) { 271 void NetworkMenuButton::SetBadge(const SkBitmap& badge) {
425 badge_ = badge; 272 badge_ = badge;
426 } 273 }
427 274
428 // static 275 // static
429 SkBitmap NetworkMenuButton::IconForNetworkStrength(int strength, bool black) { 276 SkBitmap NetworkMenuButton::IconForNetworkStrength(int strength, bool black) {
430 // Compose wifi icon by superimposing various icons. 277 // Compose wifi icon by superimposing various icons.
431 // NOTE: Use an array rather than just calculating a resource number to avoid 278 // NOTE: Use an array rather than just calculating a resource number to avoid
432 // creating implicit ordering dependencies on the resource values. 279 // creating implicit ordering dependencies on the resource values.
433 static const int kBarsImages[kNumWifiImages] = { 280 static const int kBarsImages[kNumWifiImages] = {
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
602 if (host_->ShouldOpenButtonOptions(this)) { 449 if (host_->ShouldOpenButtonOptions(this)) {
603 label = 450 label =
604 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_OPEN_OPTIONS_DIALOG); 451 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_OPEN_OPTIONS_DIALOG);
605 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, 452 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label,
606 SkBitmap(), std::string(), FLAG_OPTIONS)); 453 SkBitmap(), std::string(), FLAG_OPTIONS));
607 } 454 }
608 } 455 }
609 } 456 }
610 457
611 } // namespace chromeos 458 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/status/network_menu_button.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698