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 UI_VIEWS_EXAMPLES_TEXTFIELD_EXAMPLE_H_ 6#define UI_VIEWS_EXAMPLES_TEXTFIELD_EXAMPLE_H_ 7 8#include <string> 9 10#include "base/macros.h" 11#include "ui/views/controls/button/button.h" 12#include "ui/views/controls/textfield/textfield_controller.h" 13#include "ui/views/examples/example_base.h" 14 15namespace views { 16 17class LabelButton; 18 19namespace examples { 20 21// TextfieldExample mimics login screen. 22class VIEWS_EXAMPLES_EXPORT TextfieldExample : public ExampleBase, 23 public TextfieldController, 24 public ButtonListener { 25 public: 26 TextfieldExample(); 27 virtual ~TextfieldExample(); 28 29 // ExampleBase: 30 virtual void CreateExampleView(View* container) OVERRIDE; 31 32 private: 33 // TextfieldController: 34 virtual void ContentsChanged(Textfield* sender, 35 const base::string16& new_contents) OVERRIDE; 36 virtual bool HandleKeyEvent(Textfield* sender, 37 const ui::KeyEvent& key_event) OVERRIDE; 38 virtual bool HandleMouseEvent(Textfield* sender, 39 const ui::MouseEvent& mouse_event) OVERRIDE; 40 41 // ButtonListener: 42 virtual void ButtonPressed(Button* sender, const ui::Event& event) OVERRIDE; 43 44 // Textfields for name and password. 45 Textfield* name_; 46 Textfield* password_; 47 Textfield* read_only_; 48 49 // Various buttons to control textfield. 50 LabelButton* show_password_; 51 LabelButton* clear_all_; 52 LabelButton* append_; 53 LabelButton* set_; 54 LabelButton* set_style_; 55 56 DISALLOW_COPY_AND_ASSIGN(TextfieldExample); 57}; 58 59} // namespace examples 60} // namespace views 61 62#endif // UI_VIEWS_EXAMPLES_TEXTFIELD_EXAMPLE_H_ 63