crypto_module_password_dialog_view.h revision 0529e5d033099cbfc42635f6f6183833b09dff6e
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_UI_VIEWS_CRYPTO_MODULE_PASSWORD_DIALOG_VIEW_H_
6#define CHROME_BROWSER_UI_VIEWS_CRYPTO_MODULE_PASSWORD_DIALOG_VIEW_H_
7
8#include <string>
9
10#include "base/basictypes.h"
11#include "base/gtest_prod_util.h"
12#include "chrome/browser/ui/crypto_module_password_dialog.h"
13#include "ui/views/controls/textfield/textfield_controller.h"
14#include "ui/views/window/dialog_delegate.h"
15
16namespace views {
17class Label;
18class Textfield;
19}
20
21namespace chrome {
22
23class CryptoModulePasswordDialogView : public views::DialogDelegateView,
24                                       public views::TextfieldController {
25 public:
26  CryptoModulePasswordDialogView(const std::string& slot_name,
27                                 CryptoModulePasswordReason reason,
28                                 const std::string& server,
29                                 const CryptoModulePasswordCallback& callback);
30
31  virtual ~CryptoModulePasswordDialogView();
32
33 private:
34  FRIEND_TEST_ALL_PREFIXES(CryptoModulePasswordDialogViewTest, TestAccept);
35
36  // views::WidgetDelegate:
37  virtual views::View* GetInitiallyFocusedView() OVERRIDE;
38  virtual ui::ModalType GetModalType() const OVERRIDE;
39  virtual base::string16 GetWindowTitle() const OVERRIDE;
40
41  // views::DialogDelegate:
42  virtual base::string16 GetDialogButtonLabel(
43      ui::DialogButton button) const OVERRIDE;
44  virtual bool Cancel() OVERRIDE;
45  virtual bool Accept() OVERRIDE;
46
47  // views::TextfieldController:
48  virtual void ContentsChanged(views::Textfield* sender,
49                               const base::string16& new_contents) OVERRIDE;
50  virtual bool HandleKeyEvent(views::Textfield* sender,
51                              const ui::KeyEvent& keystroke) OVERRIDE;
52
53  // Initialize views and layout.
54  void Init(const std::string& server,
55            const std::string& slot_name,
56            CryptoModulePasswordReason reason);
57
58  views::Label* reason_label_;
59  views::Label* password_label_;
60  views::Textfield* password_entry_;
61
62  const CryptoModulePasswordCallback callback_;
63
64  DISALLOW_COPY_AND_ASSIGN(CryptoModulePasswordDialogView);
65};
66
67}  // namespace chrome
68
69#endif  // CHROME_BROWSER_UI_VIEWS_CRYPTO_MODULE_PASSWORD_DIALOG_VIEW_H_
70