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

Side by Side Diff: ash/system/network/tray_network.cc

Issue 10201015: [cros] Add network tray item for mobile network setup. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: nit Created 8 years, 8 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 | « ash/shell.cc ('k') | ash/system/tray/system_tray_delegate.h » ('j') | 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "ash/system/network/tray_network.h" 5 #include "ash/system/network/tray_network.h"
6 6
7 #include "ash/shell.h" 7 #include "ash/shell.h"
8 #include "ash/shell_window_ids.h" 8 #include "ash/shell_window_ids.h"
9 #include "ash/system/tray/system_tray.h" 9 #include "ash/system/tray/system_tray.h"
10 #include "ash/system/tray/system_tray_delegate.h" 10 #include "ash/system/tray/system_tray_delegate.h"
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 public: 161 public:
162 explicit NetworkDetailedView(user::LoginStatus login) 162 explicit NetworkDetailedView(user::LoginStatus login)
163 : login_(login), 163 : login_(login),
164 header_(NULL), 164 header_(NULL),
165 header_text_(NULL), 165 header_text_(NULL),
166 header_buttons_(NULL), 166 header_buttons_(NULL),
167 airplane_(NULL), 167 airplane_(NULL),
168 info_icon_(NULL), 168 info_icon_(NULL),
169 button_wifi_(NULL), 169 button_wifi_(NULL),
170 button_cellular_(NULL), 170 button_cellular_(NULL),
171 mobile_account_(NULL), 171 view_mobile_account_(NULL),
172 setup_mobile_account_(NULL),
172 other_wifi_(NULL), 173 other_wifi_(NULL),
173 other_mobile_(NULL), 174 other_mobile_(NULL),
174 settings_(NULL), 175 settings_(NULL),
175 proxy_settings_(NULL), 176 proxy_settings_(NULL),
176 info_bubble_(NULL) { 177 info_bubble_(NULL) {
177 SetLayoutManager(new views::BoxLayout( 178 SetLayoutManager(new views::BoxLayout(
178 views::BoxLayout::kVertical, 0, 0, 0)); 179 views::BoxLayout::kVertical, 0, 0, 0));
179 set_background(views::Background::CreateSolidBackground(kBackgroundColor)); 180 set_background(views::Background::CreateSolidBackground(kBackgroundColor));
180 SystemTrayDelegate* delegate = Shell::GetInstance()->tray_delegate(); 181 SystemTrayDelegate* delegate = Shell::GetInstance()->tray_delegate();
181 delegate->RequestNetworkScan(); 182 delegate->RequestNetworkScan();
182 Update(); 183 Update();
183 } 184 }
184 185
185 virtual ~NetworkDetailedView() { 186 virtual ~NetworkDetailedView() {
186 if (info_bubble_) 187 if (info_bubble_)
187 info_bubble_->GetWidget()->CloseNow(); 188 info_bubble_->GetWidget()->CloseNow();
188 } 189 }
189 190
190 void Update() { 191 void Update() {
191 RemoveAllChildViews(true); 192 RemoveAllChildViews(true);
192 193
193 header_ = NULL; 194 header_ = NULL;
194 header_text_ = NULL; 195 header_text_ = NULL;
195 header_buttons_ = NULL; 196 header_buttons_ = NULL;
196 airplane_ = NULL; 197 airplane_ = NULL;
197 info_icon_ = NULL; 198 info_icon_ = NULL;
198 button_wifi_ = NULL; 199 button_wifi_ = NULL;
199 button_cellular_ = NULL; 200 button_cellular_ = NULL;
200 mobile_account_ = NULL; 201 view_mobile_account_ = NULL;
202 setup_mobile_account_ = NULL;
201 other_wifi_ = NULL; 203 other_wifi_ = NULL;
202 other_mobile_ = NULL; 204 other_mobile_ = NULL;
203 settings_ = NULL; 205 settings_ = NULL;
204 proxy_settings_ = NULL; 206 proxy_settings_ = NULL;
205 207
206 AppendHeaderEntry(); 208 AppendHeaderEntry();
207 AppendHeaderButtons(); 209 AppendHeaderButtons();
208 AppendNetworkEntries(); 210 AppendNetworkEntries();
209 211
210 if (login_ != user::LOGGED_IN_LOCKED) 212 if (login_ != user::LOGGED_IN_LOCKED)
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 container->AddIconAndLabel(list[i].image, 269 container->AddIconAndLabel(list[i].image,
268 list[i].description.empty() ? list[i].name : list[i].description, 270 list[i].description.empty() ? list[i].name : list[i].description,
269 list[i].highlight ? gfx::Font::BOLD : gfx::Font::NORMAL); 271 list[i].highlight ? gfx::Font::BOLD : gfx::Font::NORMAL);
270 networks->AddChildView(container); 272 networks->AddChildView(container);
271 container->set_border(views::Border::CreateEmptyBorder(0, 273 container->set_border(views::Border::CreateEmptyBorder(0,
272 kTrayPopupDetailsIconWidth, 0, 0)); 274 kTrayPopupDetailsIconWidth, 0, 0));
273 network_map_[container] = list[i].service_path; 275 network_map_[container] = list[i].service_path;
274 } 276 }
275 277
276 if (login_ != user::LOGGED_IN_NONE) { 278 if (login_ != user::LOGGED_IN_NONE) {
277 std::string carrier_id, topup_url; 279 std::string carrier_id, topup_url, setup_url;
278 if (delegate->GetCellularCarrierInfo(&carrier_id, &topup_url)) { 280 if (delegate->GetCellularCarrierInfo(&carrier_id,
281 &topup_url,
282 &setup_url)) {
279 if (carrier_id != carrier_id_) { 283 if (carrier_id != carrier_id_) {
280 carrier_id_ = carrier_id; 284 carrier_id_ = carrier_id;
281 if (!topup_url.empty()) 285 if (!topup_url.empty())
282 topup_url_ = topup_url; 286 topup_url_ = topup_url;
283 } 287 }
288 if (!setup_url.empty())
289 setup_url_ = setup_url;
284 if (!topup_url_.empty()) { 290 if (!topup_url_.empty()) {
285 HoverHighlightView* container = new HoverHighlightView(this); 291 HoverHighlightView* container = new HoverHighlightView(this);
286 container->set_fixed_height(kTrayPopupItemHeight); 292 container->set_fixed_height(kTrayPopupItemHeight);
287 container->AddLabel(ui::ResourceBundle::GetSharedInstance(). 293 container->AddLabel(ui::ResourceBundle::GetSharedInstance().
288 GetLocalizedString(IDS_ASH_STATUS_TRAY_MOBILE_VIEW_ACCOUNT), 294 GetLocalizedString(IDS_ASH_STATUS_TRAY_MOBILE_VIEW_ACCOUNT),
289 gfx::Font::NORMAL); 295 gfx::Font::NORMAL);
290 AddChildView(container); 296 AddChildView(container);
291 mobile_account_ = container; 297 view_mobile_account_ = container;
298 }
299 if (!setup_url_.empty()) {
300 HoverHighlightView* container = new HoverHighlightView(this);
301 container->set_fixed_height(kTrayPopupItemHeight);
302 container->AddLabel(ui::ResourceBundle::GetSharedInstance().
303 GetLocalizedString(IDS_ASH_STATUS_TRAY_SETUP_MOBILE),
304 gfx::Font::NORMAL);
305 AddChildView(container);
306 setup_mobile_account_ = container;
292 } 307 }
293 } 308 }
294 } 309 }
295 310
296 scroller->set_border(views::Border::CreateSolidSidedBorder(1, 0, 1, 0, 311 scroller->set_border(views::Border::CreateSolidSidedBorder(1, 0, 1, 0,
297 SkColorSetARGB(25, 0, 0, 0))); 312 SkColorSetARGB(25, 0, 0, 0)));
298 scroller->set_fixed_size( 313 scroller->set_fixed_size(
299 gfx::Size(networks->GetPreferredSize().width() + 314 gfx::Size(networks->GetPreferredSize().width() +
300 scroller->GetScrollBarWidth(), 315 scroller->GetScrollBarWidth(),
301 kNetworkListHeight)); 316 kNetworkListHeight));
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
448 // If the info bubble was visible, close it when some other item is clicked 463 // If the info bubble was visible, close it when some other item is clicked
449 // on. 464 // on.
450 ResetInfoBubble(); 465 ResetInfoBubble();
451 466
452 if (sender == header_text_) 467 if (sender == header_text_)
453 Shell::GetInstance()->tray()->ShowDefaultView(); 468 Shell::GetInstance()->tray()->ShowDefaultView();
454 469
455 if (login_ == user::LOGGED_IN_LOCKED) 470 if (login_ == user::LOGGED_IN_LOCKED)
456 return; 471 return;
457 472
458 if (sender == mobile_account_) { 473 if (sender == view_mobile_account_) {
459 delegate->ShowCellularTopupURL(topup_url_); 474 delegate->ShowCellularURL(topup_url_);
475 } else if (sender == setup_mobile_account_) {
476 delegate->ShowCellularURL(setup_url_);
460 } else if (sender == airplane_) { 477 } else if (sender == airplane_) {
461 delegate->ToggleAirplaneMode(); 478 delegate->ToggleAirplaneMode();
462 } else { 479 } else {
463 std::map<views::View*, std::string>::iterator find; 480 std::map<views::View*, std::string>::iterator find;
464 find = network_map_.find(sender); 481 find = network_map_.find(sender);
465 if (find != network_map_.end()) { 482 if (find != network_map_.end()) {
466 std::string network_id = find->second; 483 std::string network_id = find->second;
467 delegate->ConnectToNetwork(network_id); 484 delegate->ConnectToNetwork(network_id);
468 } 485 }
469 } 486 }
470 } 487 }
471 488
472 std::string carrier_id_; 489 std::string carrier_id_;
473 std::string topup_url_; 490 std::string topup_url_;
491 std::string setup_url_;
474 492
475 user::LoginStatus login_; 493 user::LoginStatus login_;
476 std::map<views::View*, std::string> network_map_; 494 std::map<views::View*, std::string> network_map_;
477 views::View* header_; 495 views::View* header_;
478 views::View* header_text_; 496 views::View* header_text_;
479 views::View* header_buttons_; 497 views::View* header_buttons_;
480 views::View* airplane_; 498 views::View* airplane_;
481 views::ImageButton* info_icon_; 499 views::ImageButton* info_icon_;
482 views::ToggleImageButton* button_wifi_; 500 views::ToggleImageButton* button_wifi_;
483 views::ToggleImageButton* button_cellular_; 501 views::ToggleImageButton* button_cellular_;
484 views::View* mobile_account_; 502 views::View* view_mobile_account_;
503 views::View* setup_mobile_account_;
485 TrayPopupTextButton* other_wifi_; 504 TrayPopupTextButton* other_wifi_;
486 TrayPopupTextButton* other_mobile_; 505 TrayPopupTextButton* other_mobile_;
487 TrayPopupTextButton* settings_; 506 TrayPopupTextButton* settings_;
488 TrayPopupTextButton* proxy_settings_; 507 TrayPopupTextButton* proxy_settings_;
489 508
490 views::BubbleDelegateView* info_bubble_; 509 views::BubbleDelegateView* info_bubble_;
491 510
492 DISALLOW_COPY_AND_ASSIGN(NetworkDetailedView); 511 DISALLOW_COPY_AND_ASSIGN(NetworkDetailedView);
493 }; 512 };
494 513
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
534 if (tray_.get()) 553 if (tray_.get())
535 tray_->Update(info); 554 tray_->Update(info);
536 if (default_.get()) 555 if (default_.get())
537 default_->Update(); 556 default_->Update();
538 if (detailed_.get()) 557 if (detailed_.get())
539 detailed_->Update(); 558 detailed_->Update();
540 } 559 }
541 560
542 } // namespace internal 561 } // namespace internal
543 } // namespace ash 562 } // namespace ash
OLDNEW
« no previous file with comments | « ash/shell.cc ('k') | ash/system/tray/system_tray_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698