1 // Copyright 2013 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_MULTILINE_EXAMPLE_H_ 6 #define UI_VIEWS_EXAMPLES_MULTILINE_EXAMPLE_H_ 7 8 #include "base/macros.h" 9 #include "ui/views/controls/button/button.h" 10 #include "ui/views/controls/textfield/textfield_controller.h" 11 #include "ui/views/examples/example_base.h" 12 13 namespace views { 14 15 class Checkbox; 16 class Label; 17 18 namespace examples { 19 20 // An example that compares the multiline rendering of different controls. 21 class VIEWS_EXAMPLES_EXPORT MultilineExample : public ExampleBase, 22 public TextfieldController, 23 public ButtonListener { 24 public: 25 MultilineExample(); 26 virtual ~MultilineExample(); 27 28 // ExampleBase: 29 virtual void CreateExampleView(View* container) OVERRIDE; 30 31 // ButtonListener: 32 virtual void ButtonPressed(Button* sender, const ui::Event& event) OVERRIDE; 33 34 private: 35 class RenderTextView; 36 37 // TextfieldController: 38 virtual void ContentsChanged(Textfield* sender, 39 const base::string16& new_contents) OVERRIDE; 40 41 RenderTextView* render_text_view_; 42 Label* label_; 43 Textfield* textfield_; 44 45 // Checkbox to enable and disable text rendering in |label_|. 46 Checkbox* label_checkbox_; 47 48 DISALLOW_COPY_AND_ASSIGN(MultilineExample); 49 }; 50 51 } // namespace examples 52 } // namespace views 53 54 #endif // UI_VIEWS_EXAMPLES_MULTILINE_EXAMPLE_H_ 55