Home | History | Annotate | Download | only in views
      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 
     16 namespace views {
     17 class Label;
     18 class Textfield;
     19 }
     20 
     21 namespace chrome {
     22 
     23 class 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