diff options
author | mnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-01 20:07:41 +0000 |
---|---|---|
committer | mnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-01 20:07:41 +0000 |
commit | aca35d6e77b90a60888eb9c2cea1ff5c2694f4b1 (patch) | |
tree | bd0498867f4706d56a388c9e214c2620cb36644f | |
parent | 2b90791f7f2e54a8c8d58ce8569ab9b0e5b0202d (diff) | |
download | chromium_src-aca35d6e77b90a60888eb9c2cea1ff5c2694f4b1.zip chromium_src-aca35d6e77b90a60888eb9c2cea1ff5c2694f4b1.tar.gz chromium_src-aca35d6e77b90a60888eb9c2cea1ff5c2694f4b1.tar.bz2 |
Disable network "Connect" dialog UI in case of policy-managed networks.
BUG=chromium-os:23124
TEST=Network configuration continues to work, options are locked down for policy-configured networks.
Review URL: http://codereview.chromium.org/8726008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112508 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/chromeos/options/network_config_view.cc | 68 | ||||
-rw-r--r-- | chrome/browser/chromeos/options/network_config_view.h | 33 | ||||
-rw-r--r-- | chrome/browser/chromeos/options/vpn_config_view.cc | 39 | ||||
-rw-r--r-- | chrome/browser/chromeos/options/vpn_config_view.h | 7 | ||||
-rw-r--r-- | chrome/browser/chromeos/options/wifi_config_view.cc | 113 | ||||
-rw-r--r-- | chrome/browser/chromeos/options/wifi_config_view.h | 11 |
6 files changed, 237 insertions, 34 deletions
diff --git a/chrome/browser/chromeos/options/network_config_view.cc b/chrome/browser/chromeos/options/network_config_view.cc index 5952534..3e8a0f4 100644 --- a/chrome/browser/chromeos/options/network_config_view.cc +++ b/chrome/browser/chromeos/options/network_config_view.cc @@ -13,10 +13,14 @@ #include "grit/chromium_strings.h" #include "grit/generated_resources.h" #include "grit/locale_settings.h" +#include "grit/theme_resources.h" #include "ui/base/accessibility/accessible_view_state.h" #include "ui/base/l10n/l10n_util.h" +#include "ui/base/resource/resource_bundle.h" +#include "ui/gfx/image/image.h" #include "ui/gfx/rect.h" #include "ui/views/controls/button/text_button.h" +#include "ui/views/controls/image_view.h" #include "ui/views/layout/grid_layout.h" #include "ui/views/layout/layout_constants.h" #include "ui/views/widget/widget.h" @@ -187,4 +191,68 @@ void NetworkConfigView::CreateAdvancedButton() { layout->AddView(advanced_button_); } +ControlledSettingIndicatorView::ControlledSettingIndicatorView() + : managed_(false), + image_view_(NULL) { + Init(); +} + +ControlledSettingIndicatorView::ControlledSettingIndicatorView( + const NetworkPropertyUIData& ui_data) + : managed_(false), + image_view_(NULL) { + Init(); + Update(ui_data); +} + +ControlledSettingIndicatorView::~ControlledSettingIndicatorView() {} + +void ControlledSettingIndicatorView::Update( + const NetworkPropertyUIData& ui_data) { + if (managed_ == ui_data.managed()) + return; + + managed_ = ui_data.managed(); + PreferredSizeChanged(); +} + +gfx::Size ControlledSettingIndicatorView::GetPreferredSize() { + if (!IsVisible()) + return gfx::Size(); + + return image_view_->GetPreferredSize(); +} + +bool ControlledSettingIndicatorView::IsVisible() const { + return managed_ && views::View::IsVisible(); +} + +void ControlledSettingIndicatorView::Layout() { + image_view_->SetBounds(0, 0, width(), height()); +} + +void ControlledSettingIndicatorView::OnMouseEntered( + const views::MouseEvent& event) { + image_view_->SetImage(color_image_); +} + +void ControlledSettingIndicatorView::OnMouseExited( + const views::MouseEvent& event) { + image_view_->SetImage(gray_image_); +} + +void ControlledSettingIndicatorView::Init() { + color_image_ = ResourceBundle::GetSharedInstance().GetImageNamed( + IDR_CONTROLLED_SETTING_MANDATORY).ToSkBitmap(); + gray_image_ = ResourceBundle::GetSharedInstance().GetImageNamed( + IDR_CONTROLLED_SETTING_MANDATORY_GRAY).ToSkBitmap(); + image_view_ = new views::ImageView(); + // Disable |image_view_| so mouse events propagate to the parent. + image_view_->SetEnabled(false); + image_view_->SetImage(gray_image_); + image_view_->SetTooltipText( + l10n_util::GetStringUTF16(IDS_OPTIONS_CONTROLLED_SETTING_POLICY)); + AddChildView(image_view_); +} + } // namespace chromeos diff --git a/chrome/browser/chromeos/options/network_config_view.h b/chrome/browser/chromeos/options/network_config_view.h index 3d988fd..8f12f63 100644 --- a/chrome/browser/chromeos/options/network_config_view.h +++ b/chrome/browser/chromeos/options/network_config_view.h @@ -11,11 +11,13 @@ #include "base/compiler_specific.h" #include "base/string16.h" #include "chrome/browser/chromeos/cros/network_library.h" +#include "chrome/browser/chromeos/cros/network_ui_data.h" #include "ui/gfx/native_widget_types.h" // gfx::NativeWindow #include "ui/views/controls/button/button.h" // views::ButtonListener #include "ui/views/window/dialog_delegate.h" namespace views { +class ImageView; class NativeTextButton; class View; } @@ -139,6 +141,37 @@ class ChildNetworkConfigView : public views::View { DISALLOW_COPY_AND_ASSIGN(ChildNetworkConfigView); }; +// Shows an icon with tooltip indicating whether a setting is under policy +// control. +class ControlledSettingIndicatorView : public views::View { + public: + ControlledSettingIndicatorView(); + explicit ControlledSettingIndicatorView(const NetworkPropertyUIData& ui_data); + virtual ~ControlledSettingIndicatorView(); + + // Updates the view based on |ui_data|. + void Update(const NetworkPropertyUIData& ui_data); + + protected: + // views::View: + virtual gfx::Size GetPreferredSize() OVERRIDE; + virtual bool IsVisible() const OVERRIDE; + virtual void Layout() OVERRIDE; + virtual void OnMouseEntered(const views::MouseEvent& event) OVERRIDE; + virtual void OnMouseExited(const views::MouseEvent& event) OVERRIDE; + + private: + // Initializes the view. + void Init(); + + bool managed_; + views::ImageView* image_view_; + const SkBitmap* gray_image_; + const SkBitmap* color_image_; + + DISALLOW_COPY_AND_ASSIGN(ControlledSettingIndicatorView); +}; + } // namespace chromeos #endif // CHROME_BROWSER_CHROMEOS_OPTIONS_NETWORK_CONFIG_VIEW_H_ diff --git a/chrome/browser/chromeos/options/vpn_config_view.cc b/chrome/browser/chromeos/options/vpn_config_view.cc index 85a1512..9bf34c3 100644 --- a/chrome/browser/chromeos/options/vpn_config_view.cc +++ b/chrome/browser/chromeos/options/vpn_config_view.cc @@ -369,6 +369,21 @@ const std::string VPNConfigView::GetUserCertID() const { } void VPNConfigView::Init(VirtualNetwork* vpn) { + if (vpn) { + ca_cert_ui_data_.UpdateFromNetwork( + vpn, NetworkUIData::kPropertyVPNCaCertNss); + psk_passphrase_ui_data_.UpdateFromNetwork( + vpn, NetworkUIData::kPropertyVPNPskPassphrase); + user_cert_ui_data_.UpdateFromNetwork( + vpn, NetworkUIData::kPropertyVPNClientCertId); + username_ui_data_.UpdateFromNetwork( + vpn, NetworkUIData::kPropertyVPNUsername); + user_passphrase_ui_data_.UpdateFromNetwork( + vpn, NetworkUIData::kPropertyVPNUserPassphrase); + group_name_ui_data_.UpdateFromNetwork( + vpn, NetworkUIData::kPropertyVPNGroupName); + } + views::GridLayout* layout = views::GridLayout::CreatePanel(this); SetLayoutManager(layout); @@ -390,6 +405,9 @@ void VPNConfigView::Init(VirtualNetwork* vpn) { views::GridLayout::USE_PREF, 0, ChildNetworkConfigView::kInputFieldMinWidth); column_set->AddPaddingColumn(0, views::kRelatedControlSmallHorizontalSpacing); + // Policy indicator. + column_set->AddColumn(views::GridLayout::CENTER, views::GridLayout::CENTER, 0, + views::GridLayout::USE_PREF, 0, 0); // Initialize members. service_text_modified_ = false; @@ -471,6 +489,8 @@ void VPNConfigView::Init(VirtualNetwork* vpn) { if (vpn && !vpn->psk_passphrase().empty()) psk_passphrase_textfield_->SetText(UTF8ToUTF16(vpn->psk_passphrase())); layout->AddView(psk_passphrase_textfield_); + layout->AddView( + new ControlledSettingIndicatorView(psk_passphrase_ui_data_)); layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); } else { psk_passphrase_label_ = NULL; @@ -489,6 +509,7 @@ void VPNConfigView::Init(VirtualNetwork* vpn) { new ServerCACertComboboxModel(cert_library_); server_ca_cert_combobox_ = new views::Combobox(server_ca_cert_model); layout->AddView(server_ca_cert_combobox_); + layout->AddView(new ControlledSettingIndicatorView(ca_cert_ui_data_)); layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); } else { server_ca_cert_label_ = NULL; @@ -506,6 +527,7 @@ void VPNConfigView::Init(VirtualNetwork* vpn) { user_cert_combobox_ = new views::Combobox(user_cert_model); user_cert_combobox_->set_listener(this); layout->AddView(user_cert_combobox_); + layout->AddView(new ControlledSettingIndicatorView(user_cert_ui_data_)); layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); } else { user_cert_label_ = NULL; @@ -518,9 +540,11 @@ void VPNConfigView::Init(VirtualNetwork* vpn) { IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_VPN_USERNAME))); username_textfield_ = new views::Textfield(views::Textfield::STYLE_DEFAULT); username_textfield_->SetController(this); + username_textfield_->SetEnabled(username_ui_data_.editable()); if (vpn && !vpn->username().empty()) username_textfield_->SetText(UTF8ToUTF16(vpn->username())); layout->AddView(username_textfield_); + layout->AddView(new ControlledSettingIndicatorView(username_ui_data_)); layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); // User passphrase label, input and visble button. @@ -530,9 +554,11 @@ void VPNConfigView::Init(VirtualNetwork* vpn) { user_passphrase_textfield_ = new views::Textfield( views::Textfield::STYLE_PASSWORD); user_passphrase_textfield_->SetController(this); + user_passphrase_textfield_->SetEnabled(user_passphrase_ui_data_.editable()); if (vpn && !vpn->user_passphrase().empty()) user_passphrase_textfield_->SetText(UTF8ToUTF16(vpn->user_passphrase())); layout->AddView(user_passphrase_textfield_); + layout->AddView(new ControlledSettingIndicatorView(user_passphrase_ui_data_)); layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); // OTP label and input. @@ -567,6 +593,7 @@ void VPNConfigView::Init(VirtualNetwork* vpn) { if (vpn && !vpn->group_name().empty()) group_name_textfield_->SetText(UTF8ToUTF16(vpn->group_name())); layout->AddView(group_name_textfield_); + layout->AddView(new ControlledSettingIndicatorView(group_name_ui_data_)); layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); } else { group_name_label_ = NULL; @@ -662,17 +689,20 @@ void VPNConfigView::UpdateControls() { if (psk_passphrase_label_) psk_passphrase_label_->SetEnabled(enable_psk_passphrase_); if (psk_passphrase_textfield_) - psk_passphrase_textfield_->SetEnabled(enable_psk_passphrase_); + psk_passphrase_textfield_->SetEnabled(enable_psk_passphrase_ && + psk_passphrase_ui_data_.editable()); if (user_cert_label_) user_cert_label_->SetEnabled(enable_user_cert_); if (user_cert_combobox_) - user_cert_combobox_->SetEnabled(enable_user_cert_); + user_cert_combobox_->SetEnabled(enable_user_cert_ && + user_cert_ui_data_.editable()); if (server_ca_cert_label_) server_ca_cert_label_->SetEnabled(enable_server_ca_cert_); if (server_ca_cert_combobox_) - server_ca_cert_combobox_->SetEnabled(enable_server_ca_cert_); + server_ca_cert_combobox_->SetEnabled(enable_server_ca_cert_ && + ca_cert_ui_data_.editable()); if (otp_label_) otp_label_->SetEnabled(enable_otp_); @@ -682,7 +712,8 @@ void VPNConfigView::UpdateControls() { if (group_name_label_) group_name_label_->SetEnabled(enable_group_name_); if (group_name_textfield_) - group_name_textfield_->SetEnabled(enable_group_name_); + group_name_textfield_->SetEnabled(enable_group_name_ && + group_name_ui_data_.editable()); } void VPNConfigView::UpdateErrorLabel() { diff --git a/chrome/browser/chromeos/options/vpn_config_view.h b/chrome/browser/chromeos/options/vpn_config_view.h index a52f682..d94bade 100644 --- a/chrome/browser/chromeos/options/vpn_config_view.h +++ b/chrome/browser/chromeos/options/vpn_config_view.h @@ -114,6 +114,13 @@ class VPNConfigView : public ChildNetworkConfigView, bool enable_otp_; bool enable_group_name_; + NetworkPropertyUIData ca_cert_ui_data_; + NetworkPropertyUIData psk_passphrase_ui_data_; + NetworkPropertyUIData user_cert_ui_data_; + NetworkPropertyUIData username_ui_data_; + NetworkPropertyUIData user_passphrase_ui_data_; + NetworkPropertyUIData group_name_ui_data_; + views::Textfield* server_textfield_; views::Label* service_text_; views::Textfield* service_textfield_; diff --git a/chrome/browser/chromeos/options/wifi_config_view.cc b/chrome/browser/chromeos/options/wifi_config_view.cc index 31f84c1..a564863 100644 --- a/chrome/browser/chromeos/options/wifi_config_view.cc +++ b/chrome/browser/chromeos/options/wifi_config_view.cc @@ -372,12 +372,14 @@ void WifiConfigView::RefreshEapFields() { phase_2_auth_combobox_->ModelChanged(); phase_2_auth_combobox_->SetSelectedItem(0); phase_2_auth_combobox_->SetEnabled( - phase_2_auth_combobox_->model()->GetItemCount() > 1); + phase_2_auth_combobox_->model()->GetItemCount() > 1 && + phase_2_auth_ui_data_.editable()); phase_2_auth_label_->SetEnabled(phase_2_auth_combobox_->IsEnabled()); // No password for EAP-TLS passphrase_textfield_->SetEnabled(selected != EAP_METHOD_INDEX_NONE && - selected != EAP_METHOD_INDEX_TLS); + selected != EAP_METHOD_INDEX_TLS && + passphrase_ui_data_.editable()); passphrase_label_->SetEnabled(passphrase_textfield_->IsEnabled()); if (!passphrase_textfield_->IsEnabled()) passphrase_textfield_->SetText(string16()); @@ -387,7 +389,9 @@ void WifiConfigView::RefreshEapFields() { bool user_cert_enabled = (selected == EAP_METHOD_INDEX_TLS); user_cert_label_->SetEnabled(user_cert_enabled); bool have_user_certs = !certs_loading && HaveUserCerts(); - user_cert_combobox_->SetEnabled(user_cert_enabled && have_user_certs); + user_cert_combobox_->SetEnabled(user_cert_enabled && + have_user_certs && + user_cert_ui_data_.editable()); user_cert_combobox_->ModelChanged(); user_cert_combobox_->SetSelectedItem(0); @@ -395,13 +399,16 @@ void WifiConfigView::RefreshEapFields() { bool ca_cert_enabled = (selected != EAP_METHOD_INDEX_NONE && selected != EAP_METHOD_INDEX_LEAP); server_ca_cert_label_->SetEnabled(ca_cert_enabled); - server_ca_cert_combobox_->SetEnabled(ca_cert_enabled && !certs_loading); + server_ca_cert_combobox_->SetEnabled(ca_cert_enabled && + !certs_loading && + server_ca_cert_ui_data_.editable()); server_ca_cert_combobox_->ModelChanged(); server_ca_cert_combobox_->SetSelectedItem(0); // No anonymous identity if no phase 2 auth. identity_anonymous_textfield_->SetEnabled( - phase_2_auth_combobox_->IsEnabled()); + phase_2_auth_combobox_->IsEnabled() && + identity_anonymous_ui_data_.editable()); identity_anonymous_label_->SetEnabled( identity_anonymous_textfield_->IsEnabled()); if (!identity_anonymous_textfield_->IsEnabled()) @@ -741,6 +748,34 @@ void WifiConfigView::Cancel() { // to enter the data. And if they select the 802.1x encryption, we will show // the 802.1x fields. void WifiConfigView::Init(WifiNetwork* wifi, bool show_8021x) { + if (wifi) { + eap_method_ui_data_.UpdateFromNetwork( + wifi, NetworkUIData::kPropertyEAPMethod); + phase_2_auth_ui_data_.UpdateFromNetwork( + wifi, NetworkUIData::kPropertyEAPPhase2Auth); + user_cert_ui_data_.UpdateFromNetwork( + wifi, NetworkUIData::kPropertyEAPClientCertPkcs11Id); + server_ca_cert_ui_data_.UpdateFromNetwork( + wifi, NetworkUIData::kPropertyEAPServerCaCertNssNickname); + if (server_ca_cert_ui_data_.managed()) { + server_ca_cert_ui_data_.UpdateFromNetwork( + wifi, NetworkUIData::kPropertyEAPUseSystemCAs); + } + identity_ui_data_.UpdateFromNetwork( + wifi, NetworkUIData::kPropertyEAPIdentity); + identity_anonymous_ui_data_.UpdateFromNetwork( + wifi, NetworkUIData::kPropertyEAPAnonymousIdentity); + save_credentials_ui_data_.UpdateFromNetwork( + wifi, NetworkUIData::kPropertySaveCredentials); + if (show_8021x) { + passphrase_ui_data_.UpdateFromNetwork( + wifi, NetworkUIData::kPropertyEAPPassphrase); + } else { + passphrase_ui_data_.UpdateFromNetwork( + wifi, NetworkUIData::kPropertyPassphrase); + } + } + views::GridLayout* layout = views::GridLayout::CreatePanel(this); SetLayoutManager(layout); @@ -756,7 +791,7 @@ void WifiConfigView::Init(WifiNetwork* wifi, bool show_8021x) { views::GridLayout::USE_PREF, 0, ChildNetworkConfigView::kInputFieldMinWidth); column_set->AddPaddingColumn(0, views::kRelatedControlSmallHorizontalSpacing); - // Password visible button + // Password visible button / policy indicator. column_set->AddColumn(views::GridLayout::CENTER, views::GridLayout::FILL, 1, views::GridLayout::USE_PREF, 0, kPasswordVisibleWidth); @@ -802,7 +837,9 @@ void WifiConfigView::Init(WifiNetwork* wifi, bool show_8021x) { IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_EAP_METHOD))); eap_method_combobox_ = new views::Combobox(new EAPMethodComboboxModel()); eap_method_combobox_->set_listener(this); + eap_method_combobox_->SetEnabled(eap_method_ui_data_.editable()); layout->AddView(eap_method_combobox_); + layout->AddView(new ControlledSettingIndicatorView(eap_method_ui_data_)); layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); // Phase 2 authentication @@ -816,6 +853,7 @@ void WifiConfigView::Init(WifiNetwork* wifi, bool show_8021x) { phase_2_auth_combobox_->SetEnabled(false); phase_2_auth_combobox_->set_listener(this); layout->AddView(phase_2_auth_combobox_); + layout->AddView(new ControlledSettingIndicatorView(phase_2_auth_ui_data_)); layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); // Server CA certificate @@ -830,6 +868,8 @@ void WifiConfigView::Init(WifiNetwork* wifi, bool show_8021x) { server_ca_cert_combobox_->SetEnabled(false); server_ca_cert_combobox_->set_listener(this); layout->AddView(server_ca_cert_combobox_); + layout->AddView( + new ControlledSettingIndicatorView(server_ca_cert_ui_data_)); layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); // User certificate @@ -843,6 +883,7 @@ void WifiConfigView::Init(WifiNetwork* wifi, bool show_8021x) { user_cert_combobox_->SetEnabled(false); user_cert_combobox_->set_listener(this); layout->AddView(user_cert_combobox_); + layout->AddView(new ControlledSettingIndicatorView(user_cert_ui_data_)); layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); // Identity @@ -855,7 +896,9 @@ void WifiConfigView::Init(WifiNetwork* wifi, bool show_8021x) { identity_textfield_->SetController(this); if (wifi && !wifi->identity().empty()) identity_textfield_->SetText(UTF8ToUTF16(wifi->identity())); + identity_textfield_->SetEnabled(identity_ui_data_.editable()); layout->AddView(identity_textfield_); + layout->AddView(new ControlledSettingIndicatorView(identity_ui_data_)); layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); } @@ -878,29 +921,35 @@ void WifiConfigView::Init(WifiNetwork* wifi, bool show_8021x) { passphrase_textfield_->SetAccessibleName(l10n_util::GetStringUTF16( label_text_id)); layout->AddView(passphrase_textfield_); - // Password visible button. - passphrase_visible_button_ = new views::ToggleImageButton(this); - passphrase_visible_button_->SetTooltipText( - l10n_util::GetStringUTF16( - IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_PASSPHRASE_SHOW)); - passphrase_visible_button_->SetToggledTooltipText( - l10n_util::GetStringUTF16( - IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_PASSPHRASE_HIDE)); - passphrase_visible_button_->SetImage( - views::ImageButton::BS_NORMAL, - ResourceBundle::GetSharedInstance(). - GetBitmapNamed(IDR_NETWORK_SHOW_PASSWORD_OFF)); - passphrase_visible_button_->SetImage( - views::ImageButton::BS_HOT, - ResourceBundle::GetSharedInstance(). - GetBitmapNamed(IDR_NETWORK_SHOW_PASSWORD_HOVER)); - passphrase_visible_button_->SetToggledImage( - views::ImageButton::BS_NORMAL, - ResourceBundle::GetSharedInstance(). - GetBitmapNamed(IDR_NETWORK_SHOW_PASSWORD_ON)); - passphrase_visible_button_->SetImageAlignment( - views::ImageButton::ALIGN_CENTER, views::ImageButton::ALIGN_MIDDLE); - layout->AddView(passphrase_visible_button_); + + if (passphrase_ui_data_.managed()) { + layout->AddView(new ControlledSettingIndicatorView(passphrase_ui_data_)); + } else { + // Password visible button. + passphrase_visible_button_ = new views::ToggleImageButton(this); + passphrase_visible_button_->SetTooltipText( + l10n_util::GetStringUTF16( + IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_PASSPHRASE_SHOW)); + passphrase_visible_button_->SetToggledTooltipText( + l10n_util::GetStringUTF16( + IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_PASSPHRASE_HIDE)); + passphrase_visible_button_->SetImage( + views::ImageButton::BS_NORMAL, + ResourceBundle::GetSharedInstance(). + GetBitmapNamed(IDR_NETWORK_SHOW_PASSWORD_OFF)); + passphrase_visible_button_->SetImage( + views::ImageButton::BS_HOT, + ResourceBundle::GetSharedInstance(). + GetBitmapNamed(IDR_NETWORK_SHOW_PASSWORD_HOVER)); + passphrase_visible_button_->SetToggledImage( + views::ImageButton::BS_NORMAL, + ResourceBundle::GetSharedInstance(). + GetBitmapNamed(IDR_NETWORK_SHOW_PASSWORD_ON)); + passphrase_visible_button_->SetImageAlignment( + views::ImageButton::ALIGN_CENTER, views::ImageButton::ALIGN_MIDDLE); + layout->AddView(passphrase_visible_button_); + } + layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); if (show_8021x) { @@ -916,6 +965,8 @@ void WifiConfigView::Init(WifiNetwork* wifi, bool show_8021x) { identity_anonymous_textfield_->SetEnabled(false); identity_anonymous_textfield_->SetController(this); layout->AddView(identity_anonymous_textfield_); + layout->AddView( + new ControlledSettingIndicatorView(identity_anonymous_ui_data_)); layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); } @@ -927,8 +978,12 @@ void WifiConfigView::Init(WifiNetwork* wifi, bool show_8021x) { save_credentials_checkbox_ = new views::Checkbox( l10n_util::GetStringUTF16( IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_SAVE_CREDENTIALS)); + save_credentials_checkbox_->SetEnabled( + save_credentials_ui_data_.editable()); layout->SkipColumns(1); layout->AddView(save_credentials_checkbox_); + layout->AddView( + new ControlledSettingIndicatorView(save_credentials_ui_data_)); } // Share network diff --git a/chrome/browser/chromeos/options/wifi_config_view.h b/chrome/browser/chromeos/options/wifi_config_view.h index b7ef2bc..3fcc961 100644 --- a/chrome/browser/chromeos/options/wifi_config_view.h +++ b/chrome/browser/chromeos/options/wifi_config_view.h @@ -22,8 +22,8 @@ namespace views { class Checkbox; -class ToggleImageButton; class Label; +class ToggleImageButton; } namespace chromeos { @@ -109,6 +109,15 @@ class WifiConfigView : public ChildNetworkConfigView, CertLibrary* cert_library_; + NetworkPropertyUIData eap_method_ui_data_; + NetworkPropertyUIData phase_2_auth_ui_data_; + NetworkPropertyUIData user_cert_ui_data_; + NetworkPropertyUIData server_ca_cert_ui_data_; + NetworkPropertyUIData identity_ui_data_; + NetworkPropertyUIData identity_anonymous_ui_data_; + NetworkPropertyUIData save_credentials_ui_data_; + NetworkPropertyUIData passphrase_ui_data_; + views::Textfield* ssid_textfield_; views::Combobox* eap_method_combobox_; views::Label* phase_2_auth_label_; |