diff options
author | stevenjb@google.com <stevenjb@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-15 06:40:33 +0000 |
---|---|---|
committer | stevenjb@google.com <stevenjb@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-15 06:40:33 +0000 |
commit | c364790639ff2ac3ea6ec187cd71ce2908b76548 (patch) | |
tree | 0ea4f83a66bb3526da0b849a3e7cdd2c0257568b /chrome/browser/chromeos/options/network_config_view.cc | |
parent | 0c6f3b0c5f6409496fcecab0819b062f36d9b113 (diff) | |
download | chromium_src-c364790639ff2ac3ea6ec187cd71ce2908b76548.zip chromium_src-c364790639ff2ac3ea6ec187cd71ce2908b76548.tar.gz chromium_src-c364790639ff2ac3ea6ec187cd71ce2908b76548.tar.bz2 |
Add VPN UI
* Add 'Private networks' submenu to the network menu, which lists active virtual networks and has 'Add private network...' item
* Settings UI is incomplete and currently consists only of an overlay badge on the active wireless network when there is an active VPN.
Note: Code is ready for review, but requires changes to flimflam to be testable.
BUG=chromium-os:11815
TEST=Test conencting to PSK and OpenVPN networks
Review URL: http://codereview.chromium.org/6733013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81710 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/chromeos/options/network_config_view.cc')
-rw-r--r-- | chrome/browser/chromeos/options/network_config_view.cc | 49 |
1 files changed, 34 insertions, 15 deletions
diff --git a/chrome/browser/chromeos/options/network_config_view.cc b/chrome/browser/chromeos/options/network_config_view.cc index 8b4f9f0..39afba8 100644 --- a/chrome/browser/chromeos/options/network_config_view.cc +++ b/chrome/browser/chromeos/options/network_config_view.cc @@ -8,6 +8,7 @@ #include "base/string_util.h" #include "base/utf_string_conversions.h" +#include "chrome/browser/chromeos/options/vpn_config_view.h" #include "chrome/browser/chromeos/options/wifi_config_view.h" #include "grit/chromium_strings.h" #include "grit/generated_resources.h" @@ -23,20 +24,35 @@ using views::WidgetGtk; namespace chromeos { -NetworkConfigView::NetworkConfigView(WifiNetwork* wifi) +// static +const int ChildNetworkConfigView::kPassphraseWidth = 150; + +NetworkConfigView::NetworkConfigView(Network* network) : browser_mode_(true), - title_(UTF16ToWide( - l10n_util::GetStringUTF16(IDS_OPTIONS_SETTINGS_JOIN_WIFI_NETWORKS))), - wificonfig_view_(new WifiConfigView(this, wifi)), delegate_(NULL) { + if (network->type() == TYPE_WIFI) { + child_config_view_ = + new WifiConfigView(this, static_cast<WifiNetwork*>(network)); + } else if (network->type() == TYPE_VPN) { + child_config_view_ = + new VPNConfigView(this, static_cast<VirtualNetwork*>(network)); + } else { + NOTREACHED(); + child_config_view_ = NULL; + } } -NetworkConfigView::NetworkConfigView() +NetworkConfigView::NetworkConfigView(ConnectionType type) : browser_mode_(true), - title_(UTF16ToWide( - l10n_util::GetStringUTF16(IDS_OPTIONS_SETTINGS_JOIN_WIFI_NETWORKS))), - wificonfig_view_(new WifiConfigView(this)), delegate_(NULL) { + if (type == TYPE_WIFI) { + child_config_view_ = new WifiConfigView(this); + } else if (type == TYPE_VPN) { + child_config_view_ = new VPNConfigView(this); + } else { + NOTREACHED(); + child_config_view_ = NULL; + } } gfx::NativeWindow NetworkConfigView::GetNativeWindow() const { @@ -55,26 +71,26 @@ bool NetworkConfigView::IsDialogButtonEnabled( MessageBoxFlags::DialogButton button) const { // Disable connect button if cannot login. if (button == MessageBoxFlags::DIALOGBUTTON_OK) - return wificonfig_view_->CanLogin(); + return child_config_view_->CanLogin(); return true; } bool NetworkConfigView::Cancel() { if (delegate_) delegate_->OnDialogCancelled(); - wificonfig_view_->Cancel(); + child_config_view_->Cancel(); return true; } bool NetworkConfigView::Accept() { - bool result = wificonfig_view_->Login(); + bool result = child_config_view_->Login(); if (result && delegate_) delegate_->OnDialogAccepted(); return result; } std::wstring NetworkConfigView::GetWindowTitle() const { - return title_; + return UTF16ToWide(child_config_view_->GetTitle()); } void NetworkConfigView::GetAccessibleState(ui::AccessibleViewState* state) { @@ -84,14 +100,17 @@ void NetworkConfigView::GetAccessibleState(ui::AccessibleViewState* state) { } void NetworkConfigView::Layout() { - wificonfig_view_->SetBounds(0, 0, width(), height()); + child_config_view_->SetBounds(0, 0, width(), height()); } gfx::Size NetworkConfigView::GetPreferredSize() { gfx::Size result(views::Window::GetLocalizedContentsSize( IDS_JOIN_WIFI_NETWORK_DIALOG_WIDTH_CHARS, IDS_JOIN_WIFI_NETWORK_DIALOG_MINIMUM_HEIGHT_LINES)); - result.set_height(wificonfig_view_->GetPreferredSize().height()); + gfx::Size size = child_config_view_->GetPreferredSize(); + result.set_height(size.height()); + if (size.width() > result.width()) + result.set_width(size.width()); return result; } @@ -100,7 +119,7 @@ void NetworkConfigView::ViewHierarchyChanged( // Can't init before we're inserted into a Container, because we require // a HWND to parent native child controls to. if (is_add && child == this) - AddChildView(wificonfig_view_); + AddChildView(child_config_view_); } } // namespace chromeos |