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_button.h" | 5 #include "chrome/browser/chromeos/status/network_menu_button.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <limits> | 8 #include <limits> |
9 | 9 |
10 #include "base/string_util.h" | 10 #include "base/string_util.h" |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
99 host_->OpenButtonOptions(this); | 99 host_->OpenButtonOptions(this); |
100 } | 100 } |
101 | 101 |
102 bool NetworkMenuButton::ShouldOpenButtonOptions() const { | 102 bool NetworkMenuButton::ShouldOpenButtonOptions() const { |
103 return host_->ShouldOpenButtonOptions(this); | 103 return host_->ShouldOpenButtonOptions(this); |
104 } | 104 } |
105 | 105 |
106 //////////////////////////////////////////////////////////////////////////////// | 106 //////////////////////////////////////////////////////////////////////////////// |
107 // NetworkMenuButton, private methods | 107 // NetworkMenuButton, private methods |
108 | 108 |
109 void NetworkMenuButton::SetIconAndBadge(const SkBitmap& icon, | 109 void NetworkMenuButton::SetIconAndBadge(SkBitmap* icon, |
110 const SkBitmap& badge) { | 110 SkBitmap* badge) { |
111 icon_ = icon; | 111 icon_ = icon; |
112 badge_ = badge; | 112 badge_ = badge; |
113 SetIcon(IconForDisplay(icon_, badge_)); | 113 SetIcon(IconForDisplay(icon_, badge_)); |
114 } | 114 } |
115 | 115 |
116 void NetworkMenuButton::SetIconOnly(const SkBitmap& icon) { | 116 void NetworkMenuButton::SetIconOnly(SkBitmap* icon) { |
117 icon_ = icon; | 117 icon_ = icon; |
118 SetIcon(IconForDisplay(icon_, badge_)); | 118 SetIcon(IconForDisplay(icon_, badge_)); |
119 } | 119 } |
120 | 120 |
121 void NetworkMenuButton::SetBadgeOnly(const SkBitmap& badge) { | 121 void NetworkMenuButton::SetBadgeOnly(SkBitmap* badge) { |
122 badge_ = badge; | 122 badge_ = badge; |
123 SetIcon(IconForDisplay(icon_, badge_)); | 123 SetIcon(IconForDisplay(icon_, badge_)); |
124 } | 124 } |
125 | 125 |
126 void NetworkMenuButton::SetNetworkIcon(NetworkLibrary* cros, | 126 void NetworkMenuButton::SetNetworkIcon(NetworkLibrary* cros, |
127 const Network* network) { | 127 const Network* network) { |
128 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | 128 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
129 | 129 |
130 if (!cros || !CrosLibrary::Get()->EnsureLoaded()) { | 130 if (!cros || !CrosLibrary::Get()->EnsureLoaded()) { |
131 SetIconAndBadge(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_BARS0), | 131 SetIconAndBadge(rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_BARS0), |
132 *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_WARNING)); | 132 rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_WARNING)); |
133 SetTooltipText(UTF16ToWide(l10n_util::GetStringUTF16( | 133 SetTooltipText(UTF16ToWide(l10n_util::GetStringUTF16( |
134 IDS_STATUSBAR_NETWORK_NO_NETWORK_TOOLTIP))); | 134 IDS_STATUSBAR_NETWORK_NO_NETWORK_TOOLTIP))); |
135 return; | 135 return; |
136 } | 136 } |
137 | 137 |
138 if (!cros->Connected() && !cros->Connecting()) { | 138 if (!cros->Connected() && !cros->Connecting()) { |
139 animation_connecting_.Stop(); | 139 animation_connecting_.Stop(); |
140 SetIconAndBadge(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_BARS0), | 140 SetIconAndBadge(rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_BARS0), |
141 *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_DISCONNECTED)); | 141 rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_DISCONNECTED)); |
142 SetTooltipText(UTF16ToWide(l10n_util::GetStringUTF16( | 142 SetTooltipText(UTF16ToWide(l10n_util::GetStringUTF16( |
143 IDS_STATUSBAR_NETWORK_NO_NETWORK_TOOLTIP))); | 143 IDS_STATUSBAR_NETWORK_NO_NETWORK_TOOLTIP))); |
144 return; | 144 return; |
145 } | 145 } |
146 | 146 |
147 if (cros->wifi_connecting() || cros->cellular_connecting()) { | 147 if (cros->wifi_connecting() || cros->cellular_connecting()) { |
148 // Start the connecting animation if not running. | 148 // Start the connecting animation if not running. |
149 if (!animation_connecting_.is_animating()) { | 149 if (!animation_connecting_.is_animating()) { |
150 animation_connecting_.Reset(); | 150 animation_connecting_.Reset(); |
151 animation_connecting_.StartThrobbing(-1); | 151 animation_connecting_.StartThrobbing(-1); |
152 SetIconOnly(IconForNetworkConnecting(0, false)); | 152 SetIconOnly(IconForNetworkConnecting(0, false)); |
153 } | 153 } |
154 const WirelessNetwork* wireless = NULL; | 154 const WirelessNetwork* wireless = NULL; |
155 if (cros->wifi_connecting()) { | 155 if (cros->wifi_connecting()) { |
156 wireless = cros->wifi_network(); | 156 wireless = cros->wifi_network(); |
157 SetBadgeOnly(SkBitmap()); | 157 SetBadgeOnly(NULL); |
158 } else { // cellular_connecting | 158 } else { // cellular_connecting |
159 wireless = cros->cellular_network(); | 159 wireless = cros->cellular_network(); |
160 SetBadgeOnly(BadgeForNetworkTechnology(cros->cellular_network())); | 160 SetBadgeOnly(BadgeForNetworkTechnology(cros->cellular_network())); |
161 } | 161 } |
162 SetTooltipText(UTF16ToWide(l10n_util::GetStringFUTF16( | 162 SetTooltipText(UTF16ToWide(l10n_util::GetStringFUTF16( |
163 wireless->configuring() ? IDS_STATUSBAR_NETWORK_CONFIGURING_TOOLTIP | 163 wireless->configuring() ? IDS_STATUSBAR_NETWORK_CONFIGURING_TOOLTIP |
164 : IDS_STATUSBAR_NETWORK_CONNECTING_TOOLTIP, | 164 : IDS_STATUSBAR_NETWORK_CONNECTING_TOOLTIP, |
165 UTF8ToUTF16(wireless->name())))); | 165 UTF8ToUTF16(wireless->name())))); |
166 } else { | 166 } else { |
167 // Stop connecting animation since we are not connecting. | 167 // Stop connecting animation since we are not connecting. |
168 animation_connecting_.Stop(); | 168 animation_connecting_.Stop(); |
169 // Only set the icon, if it is an active network that changed. | 169 // Only set the icon, if it is an active network that changed. |
170 if (network && network->is_active()) { | 170 if (network && network->is_active()) { |
171 if (network->type() == TYPE_ETHERNET) { | 171 if (network->type() == TYPE_ETHERNET) { |
172 SetIconAndBadge(*rb.GetBitmapNamed(IDR_STATUSBAR_WIRED), SkBitmap()); | 172 SetIconAndBadge(rb.GetBitmapNamed(IDR_STATUSBAR_WIRED), NULL); |
173 SetTooltipText( | 173 SetTooltipText( |
174 UTF16ToWide(l10n_util::GetStringFUTF16( | 174 UTF16ToWide(l10n_util::GetStringFUTF16( |
175 IDS_STATUSBAR_NETWORK_CONNECTED_TOOLTIP, | 175 IDS_STATUSBAR_NETWORK_CONNECTED_TOOLTIP, |
176 l10n_util::GetStringUTF16( | 176 l10n_util::GetStringUTF16( |
177 IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET)))); | 177 IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET)))); |
178 } else if (network->type() == TYPE_WIFI) { | 178 } else if (network->type() == TYPE_WIFI) { |
179 const WifiNetwork* wifi = static_cast<const WifiNetwork*>(network); | 179 const WifiNetwork* wifi = static_cast<const WifiNetwork*>(network); |
180 SetIconAndBadge(IconForNetworkStrength(wifi, false), SkBitmap()); | 180 SetIconAndBadge(IconForNetworkStrength(wifi, false), NULL); |
181 SetTooltipText(UTF16ToWide(l10n_util::GetStringFUTF16( | 181 SetTooltipText(UTF16ToWide(l10n_util::GetStringFUTF16( |
182 IDS_STATUSBAR_NETWORK_CONNECTED_TOOLTIP, | 182 IDS_STATUSBAR_NETWORK_CONNECTED_TOOLTIP, |
183 UTF8ToUTF16(wifi->name())))); | 183 UTF8ToUTF16(wifi->name())))); |
184 } else if (network->type() == TYPE_CELLULAR) { | 184 } else if (network->type() == TYPE_CELLULAR) { |
185 const CellularNetwork* cellular = | 185 const CellularNetwork* cellular = |
186 static_cast<const CellularNetwork*>(network); | 186 static_cast<const CellularNetwork*>(network); |
187 SetIconAndBadge(IconForNetworkStrength(cellular, false), | 187 SetIconAndBadge(IconForNetworkStrength(cellular, false), |
188 BadgeForNetworkTechnology(cellular)); | 188 BadgeForNetworkTechnology(cellular)); |
189 SetTooltipText(UTF16ToWide(l10n_util::GetStringFUTF16( | 189 SetTooltipText(UTF16ToWide(l10n_util::GetStringFUTF16( |
190 IDS_STATUSBAR_NETWORK_CONNECTED_TOOLTIP, | 190 IDS_STATUSBAR_NETWORK_CONNECTED_TOOLTIP, |
(...skipping 11 matching lines...) Expand all Loading... |
202 cros->RemoveNetworkObserver(active_network_, this); | 202 cros->RemoveNetworkObserver(active_network_, this); |
203 } | 203 } |
204 if (!new_network.empty()) { | 204 if (!new_network.empty()) { |
205 cros->AddNetworkObserver(new_network, this); | 205 cros->AddNetworkObserver(new_network, this); |
206 } | 206 } |
207 active_network_ = new_network; | 207 active_network_ = new_network; |
208 } | 208 } |
209 } | 209 } |
210 | 210 |
211 } // namespace chromeos | 211 } // namespace chromeos |
OLD | NEW |