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