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_UI_PASSPHRASE_TEXTFIELD_H_
6 #define CHROME_BROWSER_CHROMEOS_UI_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   void OnFocus() override;
25   void OnBlur() override;
26 
27   // Returns the passphrase. If it's unchanged, then returns an empty string.
28   std::string GetPassphrase();
29 
changed()30   bool changed() const { return changed_; }
show_fake()31   bool show_fake() const { return show_fake_; }
32 
33  private:
34   void SetFakePassphrase();
35   void ClearFakePassphrase();
36 
37   bool show_fake_;
38   bool changed_;
39 };
40 
41 }  // namespace chromeos
42 
43 #endif  // CHROME_BROWSER_CHROMEOS_UI_PASSPHRASE_TEXTFIELD_H_
44