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