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

Unified Diff: chrome/browser/chromeos/status/network_dropdown_button.cc

Issue 3166028: Replace network combobox with network dropdown button (Closed)
Patch Set: Removed trailing spaces Created 10 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/status/network_dropdown_button.cc
diff --git a/chrome/browser/chromeos/status/network_dropdown_button.cc b/chrome/browser/chromeos/status/network_dropdown_button.cc
new file mode 100644
index 0000000000000000000000000000000000000000..cf82ebe7591cc481e1d975eb4a9d1578f27dc18f
--- /dev/null
+++ b/chrome/browser/chromeos/status/network_dropdown_button.cc
@@ -0,0 +1,73 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/chromeos/status/network_dropdown_button.h"
+
+#include "app/l10n_util.h"
+#include "app/resource_bundle.h"
+#include "base/utf_string_conversions.h"
+#include "chrome/browser/chromeos/cros/cros_library.h"
+#include "chrome/browser/chromeos/options/network_config_view.h"
+#include "chrome/browser/chromeos/status/status_area_host.h"
+#include "gfx/canvas_skia.h"
+#include "grit/generated_resources.h"
+#include "grit/theme_resources.h"
+#include "views/window/window.h"
+
+namespace chromeos {
+
+////////////////////////////////////////////////////////////////////////////////
+// NetworkDropdownButton
+
+NetworkDropdownButton::NetworkDropdownButton(bool browser_mode,
+ gfx::NativeWindow parent_window)
+ : MenuButton(NULL,
+ l10n_util::GetString(IDS_STATUSBAR_NO_NETWORKS_MESSAGE),
+ this,
+ true),
+ browser_mode_(browser_mode),
+ parent_window_(parent_window) {
+ NetworkChanged(CrosLibrary::Get()->GetNetworkLibrary());
+ CrosLibrary::Get()->GetNetworkLibrary()->AddObserver(this);
+}
+
+NetworkDropdownButton::~NetworkDropdownButton() {
+ CrosLibrary::Get()->GetNetworkLibrary()->RemoveObserver(this);
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// NetworkDropdownButton, NetworkLibrary::Observer implementation:
+
+void NetworkDropdownButton::NetworkChanged(NetworkLibrary* cros) {
+ // Show network that we will actually use. It could be another network than
+ // user selected. For example user selected WiFi network but we have Ethernet
+ // connection and Chrome OS device will actually use Ethernet.
+
+ ResourceBundle& rb = ResourceBundle::GetSharedInstance();
+ if (CrosLibrary::Get()->EnsureLoaded()) {
+ // Always show the higher priority connection first. Ethernet then wifi.
+ if (cros->ethernet_connected()) {
+ SetIcon(*rb.GetBitmapNamed(IDR_STATUSBAR_WIRED));
+ SetText(l10n_util::GetString(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET));
+ } else if (cros->wifi_connected() || cros->wifi_connecting()) {
+ SetIcon(IconForNetworkStrength(cros->wifi_strength(), true));
+ SetText(ASCIIToWide(cros->wifi_name()));
+ } else if (cros->cellular_connected() || cros->cellular_connecting()) {
+ SetIcon(IconForNetworkStrength(cros->cellular_strength(), false));
+ SetText(ASCIIToWide(cros->cellular_name()));
+ }
+
+ if (!cros->Connected() && !cros->Connecting()) {
+ SetIcon(SkBitmap());
+ SetText(l10n_util::GetString(IDS_NETWORK_SELECTION_NONE));
+ }
+ } else {
+ SetIcon(SkBitmap());
+ SetText(l10n_util::GetString(IDS_STATUSBAR_NO_NETWORKS_MESSAGE));
+ }
+
+ SchedulePaint();
+}
+
+} // namespace chromeos
« no previous file with comments | « chrome/browser/chromeos/status/network_dropdown_button.h ('k') | chrome/browser/chromeos/status/network_menu.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698