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

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

Issue 3526020: Redirected network details to options DOM UI page.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years, 2 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
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.h" 5 #include "chrome/browser/chromeos/status/network_menu.h"
6 6
7 #include "app/l10n_util.h" 7 #include "app/l10n_util.h"
8 #include "app/resource_bundle.h" 8 #include "app/resource_bundle.h"
9 #include "base/command_line.h"
10 #include "base/stringprintf.h"
9 #include "base/utf_string_conversions.h" 11 #include "base/utf_string_conversions.h"
12 #include "chrome/browser/browser.h"
13 #include "chrome/browser/browser_list.h"
10 #include "chrome/browser/chromeos/cros/cros_library.h" 14 #include "chrome/browser/chromeos/cros/cros_library.h"
15 #include "chrome/common/chrome_switches.h"
16 #include "chrome/common/url_constants.h"
11 #include "gfx/canvas_skia.h" 17 #include "gfx/canvas_skia.h"
12 #include "gfx/skbitmap_operations.h" 18 #include "gfx/skbitmap_operations.h"
13 #include "grit/generated_resources.h" 19 #include "grit/generated_resources.h"
14 #include "grit/theme_resources.h" 20 #include "grit/theme_resources.h"
21 #include "net/base/escape.h"
15 #include "views/window/window.h" 22 #include "views/window/window.h"
16 23
17 namespace chromeos { 24 namespace chromeos {
18 25
19 //////////////////////////////////////////////////////////////////////////////// 26 ////////////////////////////////////////////////////////////////////////////////
20 // NetworkMenu 27 // NetworkMenu
21 28
22 // static 29 // static
23 const int NetworkMenu::kNumWifiImages = 9; 30 const int NetworkMenu::kNumWifiImages = 9;
24 31
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 *icon = menu_items_[index].icon; 68 *icon = menu_items_[index].icon;
62 return true; 69 return true;
63 } 70 }
64 return false; 71 return false;
65 } 72 }
66 73
67 bool NetworkMenu::IsEnabledAt(int index) const { 74 bool NetworkMenu::IsEnabledAt(int index) const {
68 return !(menu_items_[index].flags & FLAG_DISABLED); 75 return !(menu_items_[index].flags & FLAG_DISABLED);
69 } 76 }
70 77
78 void NetworkMenu::ShowTabbedNetworkSettings(const Network& network) {
79 Browser* browser = BrowserList::GetLastActive();
80 if (!browser)
81 return;
82 std::string page = StringPrintf("%s?servicePath=%s&networkType=%d",
83 chrome::kInternetOptionsSubPage,
84 EscapeUrlEncodedData(network.service_path()).c_str(),
85 network.type());
86 browser->ShowOptionsTab(page);
87 }
88
71 void NetworkMenu::ActivatedAt(int index) { 89 void NetworkMenu::ActivatedAt(int index) {
72 // When we are refreshing the menu, ignore menu item activation. 90 // When we are refreshing the menu, ignore menu item activation.
73 if (refreshing_menu_) 91 if (refreshing_menu_)
74 return; 92 return;
75 93
76 NetworkLibrary* cros = CrosLibrary::Get()->GetNetworkLibrary(); 94 NetworkLibrary* cros = CrosLibrary::Get()->GetNetworkLibrary();
77 int flags = menu_items_[index].flags; 95 int flags = menu_items_[index].flags;
78 if (flags & FLAG_OPTIONS) { 96 if (flags & FLAG_OPTIONS) {
79 OpenButtonOptions(); 97 OpenButtonOptions();
80 } else if (flags & FLAG_TOGGLE_ETHERNET) { 98 } else if (flags & FLAG_TOGGLE_ETHERNET) {
81 cros->EnableEthernetNetworkDevice(!cros->ethernet_enabled()); 99 cros->EnableEthernetNetworkDevice(!cros->ethernet_enabled());
82 } else if (flags & FLAG_TOGGLE_WIFI) { 100 } else if (flags & FLAG_TOGGLE_WIFI) {
83 cros->EnableWifiNetworkDevice(!cros->wifi_enabled()); 101 cros->EnableWifiNetworkDevice(!cros->wifi_enabled());
84 } else if (flags & FLAG_TOGGLE_CELLULAR) { 102 } else if (flags & FLAG_TOGGLE_CELLULAR) {
85 cros->EnableCellularNetworkDevice(!cros->cellular_enabled()); 103 cros->EnableCellularNetworkDevice(!cros->cellular_enabled());
86 } else if (flags & FLAG_TOGGLE_OFFLINE) { 104 } else if (flags & FLAG_TOGGLE_OFFLINE) {
87 cros->EnableOfflineMode(!cros->offline_mode()); 105 cros->EnableOfflineMode(!cros->offline_mode());
88 } else if (flags & FLAG_OTHER_NETWORK) { 106 } else if (flags & FLAG_OTHER_NETWORK) {
89 NetworkConfigView* view = new NetworkConfigView(); 107 NetworkConfigView* view = new NetworkConfigView();
90 view->set_browser_mode(IsBrowserMode()); 108 view->set_browser_mode(IsBrowserMode());
91 views::Window* window = views::Window::CreateChromeWindow(GetNativeWindow(), 109 views::Window* window = views::Window::CreateChromeWindow(GetNativeWindow(),
92 gfx::Rect(), 110 gfx::Rect(),
93 view); 111 view);
94 window->SetIsAlwaysOnTop(true); 112 window->SetIsAlwaysOnTop(true);
95 window->Show(); 113 window->Show();
96 view->SetLoginTextfieldFocus(); 114 view->SetLoginTextfieldFocus();
97 } else if (flags & FLAG_ETHERNET) { 115 } else if (flags & FLAG_ETHERNET) {
98 if (cros->ethernet_connected()) { 116 if (cros->ethernet_connected()) {
99 NetworkConfigView* view = new NetworkConfigView(cros->ethernet_network()); 117 if (CommandLine::ForCurrentProcess()->HasSwitch(
100 view->set_browser_mode(IsBrowserMode()); 118 switches::kEnableTabbedOptions)) {
101 views::Window* window = views::Window::CreateChromeWindow( 119 ShowTabbedNetworkSettings(cros->ethernet_network());
102 GetNativeWindow(), gfx::Rect(), view); 120 } else {
103 window->SetIsAlwaysOnTop(true); 121 NetworkConfigView* view =
104 window->Show(); 122 new NetworkConfigView(cros->ethernet_network());
123 view->set_browser_mode(IsBrowserMode());
124 views::Window* window = views::Window::CreateChromeWindow(
125 GetNativeWindow(), gfx::Rect(), view);
126 window->SetIsAlwaysOnTop(true);
127 window->Show();
128 }
105 } 129 }
106 } else if (flags & FLAG_WIFI) { 130 } else if (flags & FLAG_WIFI) {
107 WifiNetwork wifi; 131 WifiNetwork wifi;
108 bool wifi_exists = cros->FindWifiNetworkByPath( 132 bool wifi_exists = cros->FindWifiNetworkByPath(
109 menu_items_[index].wireless_path, &wifi); 133 menu_items_[index].wireless_path, &wifi);
110 if (!wifi_exists) { 134 if (!wifi_exists) {
111 // If we are attempting to connect to a network that no longer exists, 135 // If we are attempting to connect to a network that no longer exists,
112 // display a notification. 136 // display a notification.
113 // TODO(stevenjb): Show notification. 137 // TODO(stevenjb): Show notification.
114 } else if (wifi.name() == cros->wifi_name()) { 138 } else if (wifi.name() == cros->wifi_name()) {
115 if (cros->wifi_connected()) { 139 if (cros->wifi_connected()) {
116 // If we are already connected, open the config dialog. 140 if (CommandLine::ForCurrentProcess()->HasSwitch(
117 NetworkConfigView* view = new NetworkConfigView(wifi, false); 141 switches::kEnableTabbedOptions)) {
118 view->set_browser_mode(IsBrowserMode()); 142 ShowTabbedNetworkSettings(wifi);
119 views::Window* window = views::Window::CreateChromeWindow( 143 } else {
120 GetNativeWindow(), gfx::Rect(), view); 144 // If we are already connected, open the config dialog.
121 window->SetIsAlwaysOnTop(true); 145 NetworkConfigView* view = new NetworkConfigView(wifi, false);
122 window->Show(); 146 view->set_browser_mode(IsBrowserMode());
147 views::Window* window = views::Window::CreateChromeWindow(
148 GetNativeWindow(), gfx::Rect(), view);
149 window->SetIsAlwaysOnTop(true);
150 window->Show();
151 }
123 } else { 152 } else {
124 // TODO(stevenjb): Connection in progress. Show dialog? 153 // TODO(stevenjb): Connection in progress. Show dialog?
125 } 154 }
126 } else { 155 } else {
127 // If wifi network is not encrypted, then directly connect. 156 // If wifi network is not encrypted, then directly connect.
128 // Otherwise, we open password dialog window. 157 // Otherwise, we open password dialog window.
129 if (!wifi.encrypted()) { 158 if (!wifi.encrypted()) {
130 cros->ConnectToWifiNetwork(wifi, std::string(), 159 cros->ConnectToWifiNetwork(wifi, std::string(),
131 std::string(), std::string()); 160 std::string(), std::string());
132 } else { 161 } else {
(...skipping 12 matching lines...) Expand all
145 menu_items_[index].wireless_path, &cellular); 174 menu_items_[index].wireless_path, &cellular);
146 175
147 if (!cellular_exists) { 176 if (!cellular_exists) {
148 // If we are attempting to connect to a network that no longer exists, 177 // If we are attempting to connect to a network that no longer exists,
149 // display a notification. 178 // display a notification.
150 // TODO(stevenjb): Show notification. 179 // TODO(stevenjb): Show notification.
151 } else if (cellular.name() == cros->cellular_name()) { 180 } else if (cellular.name() == cros->cellular_name()) {
152 // If clicked on a network that we are already connected to or we are 181 // If clicked on a network that we are already connected to or we are
153 // currently trying to connect to, then open config dialog. 182 // currently trying to connect to, then open config dialog.
154 if (cros->cellular_connected()) { 183 if (cros->cellular_connected()) {
155 NetworkConfigView* view = new NetworkConfigView(cellular); 184 if (CommandLine::ForCurrentProcess()->HasSwitch(
156 view->set_browser_mode(IsBrowserMode()); 185 switches::kEnableTabbedOptions)) {
157 views::Window* window = views::Window::CreateChromeWindow( 186 ShowTabbedNetworkSettings(cellular);
158 GetNativeWindow(), gfx::Rect(), view); 187 } else {
159 window->SetIsAlwaysOnTop(true); 188 NetworkConfigView* view = new NetworkConfigView(cellular);
160 window->Show(); 189 view->set_browser_mode(IsBrowserMode());
190 views::Window* window = views::Window::CreateChromeWindow(
191 GetNativeWindow(), gfx::Rect(), view);
192 window->SetIsAlwaysOnTop(true);
193 window->Show();
194 }
161 } else { 195 } else {
162 // TODO(stevenjb): Connection in progress. Show dialog? 196 // TODO(stevenjb): Connection in progress. Show dialog?
163 } 197 }
164 } else { 198 } else {
165 cros->ConnectToCellularNetwork(cellular); 199 cros->ConnectToCellularNetwork(cellular);
166 } 200 }
167 } 201 }
168 } 202 }
169 203
170 void NetworkMenu::SetFirstLevelMenuWidth(int width) { 204 void NetworkMenu::SetFirstLevelMenuWidth(int width) {
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
359 if (ShouldOpenButtonOptions()) { 393 if (ShouldOpenButtonOptions()) {
360 label = 394 label =
361 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_OPEN_OPTIONS_DIALOG); 395 l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_OPEN_OPTIONS_DIALOG);
362 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label, 396 menu_items_.push_back(MenuItem(menus::MenuModel::TYPE_COMMAND, label,
363 SkBitmap(), std::string(), FLAG_OPTIONS)); 397 SkBitmap(), std::string(), FLAG_OPTIONS));
364 } 398 }
365 } 399 }
366 } 400 }
367 401
368 } // namespace chromeos 402 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/status/network_menu.h ('k') | chrome/browser/resources/options/chromeos_internet_options.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698