1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CHROME_BROWSER_CHROMEOS_OPTIONS_PASSPHRASE_TEXTFIELD_H_ 6 #define CHROME_BROWSER_CHROMEOS_OPTIONS_PASSPHRASE_TEXTFIELD_H_ 7 8 #include <string> 9 10 #include "ui/views/controls/textfield/textfield.h" 11 12 namespace chromeos { 13 14 class PassphraseTextfield : public views::Textfield { 15 public: 16 PassphraseTextfield(); 17 18 // If show_fake is true, then the text field will show a fake password. 19 void SetShowFake(bool show_fake); 20 21 // Override views::Textfield so that when focus is gained, then clear out the 22 // fake password if appropriate. Replace it when focus is lost if the user has 23 // not typed in a new password. 24 virtual void OnFocus() OVERRIDE; 25 virtual void OnBlur() OVERRIDE; 26 27 // Returns the passphrase. If it's unchanged, then returns an empty string. 28 std::string GetPassphrase(); 29 show_fake()30 bool show_fake() const { return show_fake_; } 31 32 private: 33 void SetFakePassphrase(); 34 void ClearFakePassphrase(); 35 36 bool show_fake_; 37 bool changed_; 38 }; 39 40 } // namespace chromeos 41 42 #endif // CHROME_BROWSER_CHROMEOS_OPTIONS_PASSPHRASE_TEXTFIELD_H_ 43