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 "app/l10n_util.h" | 10 #include "app/l10n_util.h" |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
113 l10n_util::GetStringF( | 113 l10n_util::GetStringF( |
114 IDS_STATUSBAR_NETWORK_CONNECTED_TOOLTIP, | 114 IDS_STATUSBAR_NETWORK_CONNECTED_TOOLTIP, |
115 l10n_util::GetString(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET))); | 115 l10n_util::GetString(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET))); |
116 } else if (cros->wifi_connected()) { | 116 } else if (cros->wifi_connected()) { |
117 SetIcon(IconForNetworkStrength( | 117 SetIcon(IconForNetworkStrength( |
118 cros->wifi_network().strength(), false)); | 118 cros->wifi_network().strength(), false)); |
119 SetTooltipText(l10n_util::GetStringF( | 119 SetTooltipText(l10n_util::GetStringF( |
120 IDS_STATUSBAR_NETWORK_CONNECTED_TOOLTIP, | 120 IDS_STATUSBAR_NETWORK_CONNECTED_TOOLTIP, |
121 UTF8ToWide(cros->wifi_network().name()))); | 121 UTF8ToWide(cros->wifi_network().name()))); |
122 } else if (cros->cellular_connected()) { | 122 } else if (cros->cellular_connected()) { |
123 SetIcon(IconForNetworkStrength( | 123 const CellularNetwork& cellular = cros->cellular_network(); |
124 cros->cellular_network().strength(), false)); | 124 if (cellular.data_left() == CellularNetwork::DATA_NONE) { |
| 125 // If no data, then we show 0 bars. |
| 126 SetIcon(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_BARS0)); |
| 127 } else { |
| 128 SetIcon(IconForNetworkStrength(cellular)); |
| 129 } |
125 SetTooltipText(l10n_util::GetStringF( | 130 SetTooltipText(l10n_util::GetStringF( |
126 IDS_STATUSBAR_NETWORK_CONNECTED_TOOLTIP, | 131 IDS_STATUSBAR_NETWORK_CONNECTED_TOOLTIP, |
127 UTF8ToWide(cros->cellular_network().name()))); | 132 UTF8ToWide(cellular.name()))); |
128 } else { | 133 } else { |
129 SetIcon(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_BARS0)); | 134 SetIcon(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_BARS0)); |
130 SetTooltipText(l10n_util::GetString( | 135 SetTooltipText(l10n_util::GetString( |
131 IDS_STATUSBAR_NETWORK_NO_NETWORK_TOOLTIP)); | 136 IDS_STATUSBAR_NETWORK_NO_NETWORK_TOOLTIP)); |
132 } | 137 } |
133 } | 138 } |
134 | 139 |
135 if (!cros->Connected() && !cros->Connecting()) { | 140 if (!cros->Connected() && !cros->Connecting()) { |
136 SetBadge(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_DISCONNECTED)); | 141 SetBadge(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_DISCONNECTED)); |
137 } else if (!cros->ethernet_connected() && !cros->wifi_connected() && | 142 } else if (!cros->ethernet_connected() && !cros->wifi_connected() && |
138 (cros->cellular_connecting() || cros->cellular_connected())) { | 143 (cros->cellular_connecting() || cros->cellular_connected())) { |
139 // TODO(chocobo): Check cellular network 3g/edge. | 144 int id; |
140 SetBadge(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_3G)); | 145 switch (cros->cellular_network().data_left()) { |
141 // SetBadge(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_EDGE)); | 146 case CellularNetwork::DATA_NONE: |
| 147 case CellularNetwork::DATA_VERY_LOW: |
| 148 id = IDR_STATUSBAR_NETWORK_3G_VLOWDATA; |
| 149 break; |
| 150 case CellularNetwork::DATA_LOW: |
| 151 id = IDR_STATUSBAR_NETWORK_3G_LOWDATA; |
| 152 break; |
| 153 case CellularNetwork::DATA_NORMAL: |
| 154 id = IDR_STATUSBAR_NETWORK_3G; |
| 155 break; |
| 156 } |
| 157 SetBadge(*rb.GetBitmapNamed(id)); |
142 } else { | 158 } else { |
143 SetBadge(SkBitmap()); | 159 SetBadge(SkBitmap()); |
144 } | 160 } |
145 } else { | 161 } else { |
146 SetIcon(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_BARS0)); | 162 SetIcon(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_BARS0)); |
147 SetBadge(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_WARNING)); | 163 SetBadge(*rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_WARNING)); |
148 SetTooltipText(l10n_util::GetString( | 164 SetTooltipText(l10n_util::GetString( |
149 IDS_STATUSBAR_NETWORK_NO_NETWORK_TOOLTIP)); | 165 IDS_STATUSBAR_NETWORK_NO_NETWORK_TOOLTIP)); |
150 } | 166 } |
151 | 167 |
152 SchedulePaint(); | 168 SchedulePaint(); |
153 UpdateMenu(); | 169 UpdateMenu(); |
154 } | 170 } |
155 | 171 |
| 172 void NetworkMenuButton::CellularDataPlanChanged(NetworkLibrary* cros) { |
| 173 // Call NetworkChanged which will update the icon. |
| 174 NetworkChanged(cros); |
| 175 } |
| 176 |
156 void NetworkMenuButton::SetBadge(const SkBitmap& badge) { | 177 void NetworkMenuButton::SetBadge(const SkBitmap& badge) { |
157 badge_ = badge; | 178 badge_ = badge; |
158 } | 179 } |
159 | 180 |
160 //////////////////////////////////////////////////////////////////////////////// | 181 //////////////////////////////////////////////////////////////////////////////// |
161 // NetworkMenuButton, NetworkMenu implementation: | 182 // NetworkMenuButton, NetworkMenu implementation: |
162 | 183 |
163 bool NetworkMenuButton::IsBrowserMode() const { | 184 bool NetworkMenuButton::IsBrowserMode() const { |
164 return host_->IsBrowserMode(); | 185 return host_->IsBrowserMode(); |
165 } | 186 } |
166 | 187 |
167 gfx::NativeWindow NetworkMenuButton::GetNativeWindow() const { | 188 gfx::NativeWindow NetworkMenuButton::GetNativeWindow() const { |
168 return host_->GetNativeWindow(); | 189 return host_->GetNativeWindow(); |
169 } | 190 } |
170 | 191 |
171 void NetworkMenuButton::OpenButtonOptions() const { | 192 void NetworkMenuButton::OpenButtonOptions() const { |
172 host_->OpenButtonOptions(this); | 193 host_->OpenButtonOptions(this); |
173 } | 194 } |
174 | 195 |
175 bool NetworkMenuButton::ShouldOpenButtonOptions() const { | 196 bool NetworkMenuButton::ShouldOpenButtonOptions() const { |
176 return host_->ShouldOpenButtonOptions(this); | 197 return host_->ShouldOpenButtonOptions(this); |
177 } | 198 } |
178 | 199 |
179 } // namespace chromeos | 200 } // namespace chromeos |
OLD | NEW |