| OLD | NEW |
| 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 #ifndef CHROME_BROWSER_CHROMEOS_OPTIONS_WIFI_CONFIG_VIEW_H_ | 5 #ifndef CHROME_BROWSER_CHROMEOS_OPTIONS_WIFI_CONFIG_VIEW_H_ |
| 6 #define CHROME_BROWSER_CHROMEOS_OPTIONS_WIFI_CONFIG_VIEW_H_ | 6 #define CHROME_BROWSER_CHROMEOS_OPTIONS_WIFI_CONFIG_VIEW_H_ |
| 7 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 #include <string> | 9 #include <string> |
| 10 | 10 |
| 11 #include "app/combobox_model.h" |
| 11 #include "base/gtest_prod_util.h" | 12 #include "base/gtest_prod_util.h" |
| 12 #include "base/string16.h" | 13 #include "base/string16.h" |
| 13 #include "chrome/browser/chromeos/cros/network_library.h" | 14 #include "chrome/browser/chromeos/cros/network_library.h" |
| 14 #include "chrome/browser/shell_dialogs.h" | 15 #include "chrome/browser/shell_dialogs.h" |
| 15 #include "views/controls/button/button.h" | 16 #include "views/controls/button/button.h" |
| 16 #include "views/controls/button/checkbox.h" | 17 #include "views/controls/button/checkbox.h" |
| 17 #include "views/controls/button/image_button.h" | 18 #include "views/controls/button/image_button.h" |
| 18 #include "views/controls/button/native_button.h" | 19 #include "views/controls/button/native_button.h" |
| 20 #include "views/controls/combobox/combobox.h" |
| 19 #include "views/controls/textfield/textfield.h" | 21 #include "views/controls/textfield/textfield.h" |
| 20 #include "views/view.h" | 22 #include "views/view.h" |
| 21 | 23 |
| 22 class FilePath; | 24 class FilePath; |
| 23 | 25 |
| 24 namespace chromeos { | 26 namespace chromeos { |
| 25 | 27 |
| 26 class NetworkConfigView; | 28 class NetworkConfigView; |
| 27 | 29 |
| 28 // A dialog box for showing a password textfield. | 30 // A dialog box for showing a password textfield. |
| 29 class WifiConfigView : public views::View, | 31 class WifiConfigView : public views::View, |
| 30 public views::Textfield::Controller, | 32 public views::Textfield::Controller, |
| 31 public views::ButtonListener, | 33 public views::ButtonListener, |
| 34 public views::Combobox::Listener, |
| 32 public SelectFileDialog::Listener { | 35 public SelectFileDialog::Listener { |
| 33 public: | 36 public: |
| 34 WifiConfigView(NetworkConfigView* parent, const WifiNetwork* wifi); | 37 WifiConfigView(NetworkConfigView* parent, const WifiNetwork* wifi); |
| 35 explicit WifiConfigView(NetworkConfigView* parent); | 38 explicit WifiConfigView(NetworkConfigView* parent); |
| 36 virtual ~WifiConfigView(); | 39 virtual ~WifiConfigView(); |
| 37 | 40 |
| 38 // views::Textfield::Controller methods. | 41 // views::Textfield::Controller methods. |
| 39 virtual void ContentsChanged(views::Textfield* sender, | 42 virtual void ContentsChanged(views::Textfield* sender, |
| 40 const string16& new_contents); | 43 const string16& new_contents); |
| 41 virtual bool HandleKeystroke(views::Textfield* sender, | 44 virtual bool HandleKeystroke(views::Textfield* sender, |
| 42 const views::Textfield::Keystroke& keystroke); | 45 const views::Textfield::Keystroke& keystroke); |
| 43 | 46 |
| 44 // views::ButtonListener | 47 // views::ButtonListener |
| 45 virtual void ButtonPressed(views::Button* sender, const views::Event& event); | 48 virtual void ButtonPressed(views::Button* sender, const views::Event& event); |
| 46 | 49 |
| 50 // views::Combobox::Listener |
| 51 virtual void ItemChanged(views::Combobox* combo_box, |
| 52 int prev_index, int new_index); |
| 53 |
| 47 // SelectFileDialog::Listener implementation. | 54 // SelectFileDialog::Listener implementation. |
| 48 virtual void FileSelected(const FilePath& path, int index, void* params); | 55 virtual void FileSelected(const FilePath& path, int index, void* params); |
| 49 | 56 |
| 50 // Login to network. | 57 // Login to network. |
| 51 virtual bool Login(); | 58 virtual bool Login(); |
| 52 | 59 |
| 53 // Save network information. | 60 // Save network information. |
| 54 virtual bool Save(); | 61 virtual bool Save(); |
| 55 | 62 |
| 56 // Get the typed in ssid. | 63 // Get the typed in ssid. |
| 57 const std::string GetSSID() const; | 64 const std::string GetSSID() const; |
| 58 // Get the typed in passphrase. | 65 // Get the typed in passphrase. |
| 59 const std::string GetPassphrase() const; | 66 const std::string GetPassphrase() const; |
| 60 | 67 |
| 61 // Returns true if the textfields are non-empty and we can login. | 68 // Returns true if the textfields are non-empty and we can login. |
| 62 bool can_login() const { return can_login_; } | 69 bool can_login() const { return can_login_; } |
| 63 | 70 |
| 64 // Focus the first field in the UI. | 71 // Focus the first field in the UI. |
| 65 void FocusFirstField(); | 72 void FocusFirstField(); |
| 66 | 73 |
| 67 private: | 74 private: |
| 68 FRIEND_TEST_ALL_PREFIXES(WifiConfigViewTest, NoChangeSaveTest); | 75 FRIEND_TEST_ALL_PREFIXES(WifiConfigViewTest, NoChangeSaveTest); |
| 69 FRIEND_TEST_ALL_PREFIXES(WifiConfigViewTest, ChangeAutoConnectSaveTest); | 76 FRIEND_TEST_ALL_PREFIXES(WifiConfigViewTest, ChangeAutoConnectSaveTest); |
| 70 FRIEND_TEST_ALL_PREFIXES(WifiConfigViewTest, ChangePasswordSaveTest); | 77 FRIEND_TEST_ALL_PREFIXES(WifiConfigViewTest, ChangePasswordSaveTest); |
| 71 | 78 |
| 79 class SecurityComboboxModel : public ComboboxModel { |
| 80 public: |
| 81 SecurityComboboxModel() {} |
| 82 virtual ~SecurityComboboxModel() {} |
| 83 virtual int GetItemCount(); |
| 84 virtual string16 GetItemAt(int index); |
| 85 private: |
| 86 DISALLOW_COPY_AND_ASSIGN(SecurityComboboxModel); |
| 87 }; |
| 88 |
| 72 // Initializes UI. | 89 // Initializes UI. |
| 73 void Init(); | 90 void Init(); |
| 74 | 91 |
| 75 // Updates state of the Login button. | 92 // Updates state of the Login button. |
| 76 void UpdateCanLogin(); | 93 void UpdateCanLogin(); |
| 77 | 94 |
| 78 // Updates state of the "view password" button. | 95 // Updates state of the "view password" button. |
| 79 void UpdateCanViewPassword(); | 96 void UpdateCanViewPassword(); |
| 80 | 97 |
| 81 NetworkConfigView* parent_; | 98 NetworkConfigView* parent_; |
| 82 | 99 |
| 83 bool other_network_; | 100 bool other_network_; |
| 84 | 101 |
| 85 // Whether or not we can log in. This gets recalculated when textfield | 102 // Whether or not we can log in. This gets recalculated when textfield |
| 86 // contents change. | 103 // contents change. |
| 87 bool can_login_; | 104 bool can_login_; |
| 88 | 105 |
| 89 scoped_ptr<WifiNetwork> wifi_; | 106 scoped_ptr<WifiNetwork> wifi_; |
| 90 | 107 |
| 91 views::Textfield* ssid_textfield_; | 108 views::Textfield* ssid_textfield_; |
| 92 views::Textfield* identity_textfield_; | 109 views::Textfield* identity_textfield_; |
| 93 views::NativeButton* certificate_browse_button_; | 110 views::NativeButton* certificate_browse_button_; |
| 94 scoped_refptr<SelectFileDialog> select_file_dialog_; | 111 scoped_refptr<SelectFileDialog> select_file_dialog_; |
| 95 std::string certificate_path_; | 112 std::string certificate_path_; |
| 113 views::Combobox* security_combobox_; |
| 96 views::Textfield* passphrase_textfield_; | 114 views::Textfield* passphrase_textfield_; |
| 97 views::ImageButton* passphrase_visible_button_; | 115 views::ImageButton* passphrase_visible_button_; |
| 98 views::Checkbox* autoconnect_checkbox_; | 116 views::Checkbox* autoconnect_checkbox_; |
| 99 | 117 |
| 100 DISALLOW_COPY_AND_ASSIGN(WifiConfigView); | 118 DISALLOW_COPY_AND_ASSIGN(WifiConfigView); |
| 101 }; | 119 }; |
| 102 | 120 |
| 103 } // namespace chromeos | 121 } // namespace chromeos |
| 104 | 122 |
| 105 #endif // CHROME_BROWSER_CHROMEOS_OPTIONS_WIFI_CONFIG_VIEW_H_ | 123 #endif // CHROME_BROWSER_CHROMEOS_OPTIONS_WIFI_CONFIG_VIEW_H_ |
| OLD | NEW |