Home | History | Annotate | Download | only in examples
      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 
     15 namespace views {
     16 
     17 class LabelButton;
     18 
     19 namespace examples {
     20 
     21 // TextfieldExample mimics login screen.
     22 class 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