summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chromeos/options/network_config_view.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/chromeos/options/network_config_view.cc')
-rw-r--r--chrome/browser/chromeos/options/network_config_view.cc49
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